我保存为.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