【问题标题】:Python add new column to the beginning of filePython将新列添加到文件的开头
【发布时间】:2017-09-09 16:57:00
【问题描述】:

我一直在尝试在 python 中向这个数据集添加一个新的 id 列

0000008::Edison Kinetoscopic Record of a Sneeze (1894)::Documentary|Short 
0000010::La sortie des usines Lumière (1895)::Documentary|Short
0000012::The Arrival of a Train (1896)::Documentary|Short
25::The Oxford and Cambridge University Boat Race (1895)::
0000091::Le manoir du diable (1896)::Short|Horror
0000417::Le voyage dans la lune (1902)::Short|Adventure|Fantasy
0000439::The Great Train Robbery (1903)::Short|Action|Crime
0443::Hiawatha, the Messiah of the Ojibway (1903)::
0000628::The Adventures of Dollie (1908)::Action|Short

我要做的是在开头添加一个带有 id 的列,所以它看起来像这样,但我不确定我会怎么做。如果有人可以帮助我解决它,我会很高兴。

0::0000008::Edison Kinetoscopic Record of a Sneeze (1894)::Documentary|Short 
1::0000010::La sortie des usines Lumière (1895)::Documentary|Short
2::0000012::The Arrival of a Train (1896)::Documentary|Short
3::25::The Oxford and Cambridge University Boat Race (1895)::
4::0000091::Le manoir du diable (1896)::Short|Horror
5::0000417::Le voyage dans la lune (1902)::Short|Adventure|Fantasy
6::0000439::The Great Train Robbery (1903)::Short|Action|Crime
7::0443::Hiawatha, the Messiah of the Ojibway (1903)::
8::0000628::The Adventures of Dollie (1908)::Action|Short

【问题讨论】:

    标签: python csv dataset


    【解决方案1】:

    你用字典一个列表还是什么,或者只是用join连接 对于范围内的 i(数据集): ''.join([i,dataset[i]])

    【讨论】:

      【解决方案2】:

      我会将此作为一个简单的 for 循环来处理现有文件中的行。在循环的每次迭代中,我将写入行号和分隔符,然后打印从旧文件中读取的行。

      infile = open('original_filename', 'r')
      outfile = open('new_filename', 'w')
      line_counter = 0
      for line in infile:
          outfile.write(str(line_counter) + "::" + line)
          line_counter += 1
      infile.close()
      outfile.close()
      

      【讨论】:

        【解决方案3】:

        假设您的输入文件名为in_file,而您的输出文件名为out_file,您可以在Python2 或/和Python3 中执行类似的操作:

        Python3

        data = (k.rstrip() for k in open("in_file", 'r'))
        with open("out_file", 'a+') as f:
            for k,v in enumerate(data):            
                f.write("{0}::{1}\n".format(k,v))
        

        Python2

        data = (k.rstrip() for k in open("in_file", 'r'))
        f = open("out_file", 'a+')
        for k,v in enumerate(data):
            f.write("%d::%s\n" % (k,v))
        f.close()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-20
          • 2019-10-06
          • 1970-01-01
          相关资源
          最近更新 更多