将多个列添加到文本文件中

时间:2017-02-19 06:58:01

标签: python-3.x file csv

我有一个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

但它只创建没有内容的文件。 谁能帮我?。提前致谢

1 个答案:

答案 0 :(得分:0)

有几个问题:

  1. 它实际上是一个以空格分隔的值文件,而不是以逗号分隔的值文件。因此,您必须更改,的分隔符。此外,重复空格,因此您可以将另一个标记传递给csv模块。

  2. 使用数组索引和转换为字符串的一些功能。

  3. 此计划符合您的要求:

    #!/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")