我有一个CSV文件,我想将其转换为基于第一列的文本文件,即ids。然后每个文件包含多个列。例如
file.csv
id val1 val 2 val3
1 50 52 60
2 45 84 96
等 这是我的代码:
dir_name = '/Users/user/My Documents/test/'
with io.open('file1.csv', 'rt',encoding='utf8') as f:
reader = csv.reader(f, delimiter=',')
next(reader)
xx = []
for row in reader:
with open(os.path.join(dir_name, row[0] + ".txt"),'a') as f2:
xx = row[1:2]
f2.write(xx +"\n")
所以它应该是:
1.text
50 52 60
2.text
45 84 96
但它只创建没有内容的文件。 谁能帮我?。提前致谢
答案 0 :(得分:0)
有几个问题:
它实际上是一个以空格分隔的值文件,而不是以逗号分隔的值文件。因此,您必须更改,
的分隔符。此外,重复空格,因此您可以将另一个标记传递给csv
模块。
使用数组索引和转换为字符串的一些功能。
此计划符合您的要求:
#!/usr/bin/python
import io
import csv
import os
dir_name = './'
with io.open('input.csv', 'rt',encoding='utf8') as f:
reader = csv.reader(f, skipinitialspace=True, delimiter=' ')
next(reader)
xx = []
for row in reader:
filename = os.path.join(dir_name, row[0])
with open(filename + ".txt", 'a') as f2:
xx = row[1:]
f2.write(" ".join(xx) +"\n")