我有一个大约80000行的文本文件。我正在尝试执行以下步骤: -
line.split()[-2]
字符串。以下是我的代码,任何人都可以弄清楚我做错了什么。
f4 = open("lines.txt") #subroutine to find out number of intervals
for i in range(header_lines):
for line in f4:
with open("satsid.txt","w") as f5:
if line.startswith(" 12"):
print line.split()[-2]
f5.write('line.split()[-2]')
numints = numints+1;
if not line:
break
答案 0 :(得分:0)
忽略header_lines
以上的循环,以下内容会复制您的代码,而不会每次重新打开f5
文件(每次重新打开时都会清除它):
with open("lines.txt") as f4, open("satsid.txt","w") as f5:
for line in f4:
if line.startswith(" 12"):
f5.write(line.split()[-2] + '\n')
如果行以f5
(空格,然后是1,然后是2)开头,则会将行中的1个但是最后一个元素写入' 12'
。我在输出文件中的这些值之间添加换行符。
如果您需要在header_lines
中跳过多行(比如存储在f4
中的数字),请使用itertools.islice()
来限制循环:
from itertools import islice
with open("lines.txt") as f4, open("satsid.txt","w") as f5:
for line in islice(f4, header_lines, None):
if line.startswith(" 12"):
f5.write(line.split()[-2] + '\n')
islice()
将跳过header_lines
行,然后通过文件的其余部分直到结束。