我想将特定行从一个文件复制到另一个文件。
我可以使用以下方法轻松复制整个文件:
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?
答案 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