Python将某些行从一个文件复制到另一个文件

时间:2014-09-07 09:29:22

标签: python file-io

我想将特定行从一个文件复制到另一个文件。

我可以使用以下方法轻松复制整个文件:

or_profile_file = open('or_profile.prof')
new_profile_file = open('new_profile.prof','w')

for line in or_profile_file:
    new_profile_file.write(line)

or_profile_file.close()
new_profile_file.close()

我如何只复制特定的行?在这种情况下,我想只复制前109行,但也有兴趣知道如何复制不同的特定行,例如复制行1,5,38和200?

2 个答案:

答案 0 :(得分:1)

使用enumerate在迭代文件时获取行号:

desired_lines = [1, 5, 38, 200]

for n, line in enumerate(or_profile_file):
    if (n+1) in desired_lines:
        new_profile_file.write(line)

请注意,n从零开始,我假设您从1开始计数,这就是我测试(n + 1)的原因。

答案 1 :(得分:1)

您可以使用枚举来查找行号并相应地编写它们:

or_profile_file = open('or_profile.prof')
new_profile_file = open('new_profile.prof','w')

lines_to_write = [1, 5, 38, 200]

for linenum, line in enumerate(or_profile_file):
    if linenum+1 in lines_to_write:
        new_profile_file.write(line)

or_profile_file.close()
new_profile_file.close()

请注意,行号从0开始。这就是linenum+1

的原因