作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试遍历一堆文本文件并将每个文件的第 2 行附加到列表中。下面是我的示例代码。这看起来应该非常接近,但我的列表中没有添加任何内容。
import os
directory = 'C:\\my_path\\'
i=0
list2 = []
for filename in os.listdir(directory):
with open(directory + filename) as infile:
try:
print(filename)
i=i+1
print(i)
data = infile.readlines()
for line in data:
if (line == 2):
list2.append(line)
infile.close()
except:
print(filename + ' is throwing an error')
print('DONE!!')
print(list2)
最佳答案
写作时:
for line in data:
if (line == 2):
list2.append(line)
infile.close()
line
变量不是行的索引,而是作为字符串的行本身。
另请注意,第二行的索引为 1,而不是 2,因为在 Python 中索引从 0 开始。
您至少应该将此循环更改为:
for index, line in enumerate(data):
if (index == 1):
list2.append(line)
infile.close()
此外,正如@bruno-desthuilliers 所建议的,您不需要使用使用内存的 readlines()
方法,而是可以像这样直接迭代您的文件:
#no infile.readlines() needed
for index, line in enumerate(infile):
if (index == 1):
list2.append(line)
infile.close()
最后,您不需要调用 infile.close()
,因为您将语句包装在 with
block 中。这个电话是为你而设的。
关于python - 尝试遍历多个文本文件并将第 2 行附加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959608/
我是一名优秀的程序员,十分优秀!