Python将新列添加到文件的开头

时间:2017-04-13 14:07:16

标签: python csv dataset

我一直在尝试在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

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

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

3 个答案:

答案 0 :(得分:1)

假设您的输入文件名为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()

答案 1 :(得分:0)

你使用字典列表或什么,或者只是连接加入 对于范围内的i(数据集): &#39;&#39;。加入([I,数据集[I]])

答案 2 :(得分:0)

我会将此作为现有文件中的行的简单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()