我保存爲.csv閱讀CSV用逗號作爲斷行
"400":0.1,"401":0.2,"402":0.3
文件最後,我希望將數據以適當的格式保存在作進一步處理CSV文件。問題是文件中沒有換行符。
pathname = r"C:\pathtofile\file.csv"
with open(pathname, newline='') as file:
reader = file.read().replace(',', '\n')
print(reader)
with open(r"C:\pathtofile\filenew.csv", 'w') as new_file:
csv_writer = csv.writer(new_file)
csv_writer.writerow(reader)
打印讀取器輸出看起來完全是我想要的(或者至少它是我可以進一步處理的格式)。
"400":0.1
"401":0.2
"402":0.3
現在我想保存到一個新的csv文件。然而,輸出看起來像
"""",4,0,0,"""",:,0,.,1,"
","""",4,0,1,"""",:,0,.,2,"
","""",4,0,2,"""",:,0,.,3
我敢肯定,這將是智能化的格式轉換爲
400,0.1
401,0.2
402,0.3
在這個階段,而不是與其他腳本以後做的。
主要的問題是,我當前的代碼
with open(pathname, newline='') as file:
reader = file.read().replace(',', '\n')
reader = csv.reader(reader,delimiter=':')
x = []
y = []
print(reader)
for row in reader:
x.append(float(row[0]))
y.append(float(row[1]))
print(x)
print(y)
工作正常的CSV文件,我目前擁有的類型,但對於這些上述不起作用:
y.append(float(row[1]))
IndexError: list index out of range
所以我試圖找到一種與他們合作的方式。我想我錯過了一些明顯的東西,因爲我認爲正確定義文件的換行符和分隔符並不難。
with open(pathname, newline=',') as file:
產生
ValueError: illegal newline value: ,
工程就像一個迷人的!我知道這是默認分隔符,這就是爲什麼我最終想要「智能」格式的原因。如何分裂:導致每一行都有一個新行,? – idkfa
@idkfa,每個「」400「:0.1」序列被認爲是一個字段。通過':'拆分序列將給出一個值作爲輸出文件 – RomanPerekhrest
的獨立行的值列表。因此,因爲我的數據的格式爲field1,field2,field3拆分每個字段將導致一個新的行?因此,當我在part1_field1和part2_field1中分割field1時,它會自動轉換爲part1_field1,part2_field1 \ n?那很整齊。 – idkfa