Python 在for循环中输出所有句子的Readlines

Python 在for循环中输出所有句子的Readlines,python,counter,readline,Python,Counter,Readline,我正在尝试以以下格式在文件中输出句子: 第1行:第一句, 第2行:第二句, 第3行:第三句 等等 然而,我输入的代码正在回馈: 第1行:所有句子, 第二行:所有的句子 等等 我不知道readline中是否有问题,或者它是否在for循环中,有人能帮忙吗?我已经包括了下面的脚本 import re, sys f = open('findallEX.txt', 'r') lines = f.readlines() for l in lines: sys.stdout.write('lin

我正在尝试以以下格式在文件中输出句子:

第1行:第一句,
第2行:第二句,
第3行:第三句

等等

然而,我输入的代码正在回馈:

第1行:所有句子,
第二行:所有的句子

等等

我不知道readline中是否有问题,或者它是否在for循环中,有人能帮忙吗?我已经包括了下面的脚本

import re, sys

f = open('findallEX.txt', 'r')

lines = f.readlines()

for l in lines:
    sys.stdout.write('line %s: %s' %(ii, lines))

    ii = ii + 1

print l
将循环更改为:

for l in lines:
    sys.stdout.write('line %s: %s' %(ii, l))
    ii = ii + 1
变量“lines”是一个行列表,您可以使用“for l in line”来移动其中的每一行。变量“l”表示单行。

将循环更改为:

for l in lines:
    sys.stdout.write('line %s: %s' %(ii, l))
    ii = ii + 1

变量“lines”是一个行列表,您可以使用“for l in line”来移动其中的每一行。变量“l”意味着一行。

对于它的价值,您可以编写更简单的代码:

with open('findallEX.txt') as f:
     for ii,line in enumerate(f):
         sys.stdout.write('line %s: %s' %(ii,line))
with
语句是执行以下操作的一种奇特方式1:

另外,请注意,您可以直接迭代文件对象
readlines()
已被弃用(并在python3.x中删除)。最后,python提供了
enumerate
函数,用于在迭代时保留计数器。由于在实际定义代码之前使用了
ii
,因此如果复制/粘贴代码,也会删除代码中的
namererror



1实际上,
with
的作用远不止于此。它还可以确保文件正确关闭,即使在代码块引发异常的情况下也是如此。请参阅Martijn的评论以获得更准确的翻译。

要了解它的价值,您的代码可以编写得更简单:

with open('findallEX.txt') as f:
     for ii,line in enumerate(f):
         sys.stdout.write('line %s: %s' %(ii,line))
with
语句是执行以下操作的一种奇特方式1:

另外,请注意,您可以直接迭代文件对象
readlines()
已被弃用(并在python3.x中删除)。最后,python提供了
enumerate
函数,用于在迭代时保留计数器。由于在实际定义代码之前使用了
ii
,因此如果复制/粘贴代码,也会删除代码中的
namererror



1实际上,
with
的作用远不止于此。它还可以确保文件正确关闭,即使在代码块引发异常的情况下也是如此。请参阅Martijn的评论以获得更正确的翻译。

将您的代码更改为此

with open('findallEX.txt') as f:
    for line_num, line_text in enumerate(f):
        sys.stdout.write('line %d: %s' % (line_num, line_text))

如果您不确定上面使用的方法:

  • 枚举

将您的代码更改为此

with open('findallEX.txt') as f:
    for line_num, line_text in enumerate(f):
        sys.stdout.write('line %d: %s' % (line_num, line_text))

如果您不确定上面使用的方法:

  • 枚举

感谢您的帮助!现在工作!谢谢你的帮助!现在工作!这是一种奇特的方法,可以尝试:f=open(…),然后是
最后:
如果f不是None:f.close()
,就要学究一点。:-)@MartijnPieters——我想这是很公平的,但是为了OP的好处,我试图用简单的术语解释它(因此,这个答案可以用形容词“有用”)。这是一种奇特的方法来做
f=None
try:f=open(…)
,然后是
finally:
如果f不是None:f.close()
,对这件事学究气。:-)@MartijnPieters——我想这很公平,但为了OP的好处,我试图用简单的术语解释它(因此答案符合形容词“有用”)。仅供参考,python有一个
+=
操作符仅供参考,python有一个
+=
操作符