我有一个代码,我正在使用readlines函数从文件中读取所有行,我正在进一步解析列表中的每一行.但是当我打印列表时,我看到循环忽略了文件中的最后一行.当我在文件中插入一个空行时,将读取所有内容.你能不能告诉我它为什么这样做
def readFile1(file1):
f = file1.readlines()
cList1 = []
for line in f:
if re.findall('\n',line):
v = re.sub('\n','',line)
cList1.append(v)
print cList1
Run Code Online (Sandbox Code Playgroud)
这是打印除文件最后一行之外的所有内容.
NPE*_*NPE 11
如果最后一行没有以换行符结尾,则代码不会将其添加到cList1.相反,它会添加倒数第二行的第二个副本(仍然存储在其中v).
编写该循环的更简洁方法是:
cList1 = []
for line in f:
cList1.append(line.rstrip('\n'))
Run Code Online (Sandbox Code Playgroud)
或者,确实:
cList1 = [line.rstrip('\n') for line in f]
Run Code Online (Sandbox Code Playgroud)
事实上,我会readlines()完全避免这个电话:
def readFile1(file1):
cList1 = [line.rstrip('\n') for line in file1]
print cList1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4627 次 |
| 最近记录: |