Python文件内容按行读取到列表中
示例文件内容如下:
Hello
World
Python
通常来讲,我们如果只是迭代文件对象每一行,并做一些处理,是不需要将文件对象转成列表的,因为文件对象本身可迭代,而且是按行迭代:
with open('somefile', 'r') as f:
for line in f:
print(line, end='')
"""
Hello
World
Python
"""
转换为列表进行操作
- 包含换行符
- 方式一
with open('somefile','r') as f:
content = list(f)
print(content)
"""
['Hello\n', 'World\n', 'Python']
"""
- 方式二
with open('somefile','r') as f:
content = f.readlines()
print(content)
"""
['Hello\n', 'World\n', 'Python']
"""
其中,content结果都是没有去掉每一行行尾的换行符的(somefile.txt文件中最后一行本来就没有换行符)
- 去掉换行符
- 方式一
with open('somefile','r') as f:
content = f.read().splitlines()
print(content)
"""
['Hello', 'World', 'Python']
"""
- 方式二
with open('somefile','r') as f:
content = [line.rstrip('\n') for line in f]
print(content)
"""
['Hello', 'World', 'Python']
"""
其中,content结果都是去掉每一行行尾的换行符
- 去掉行首行尾的空白字符
with open('somefile','r') as f:
content = [line.strip() for line in f]
print(content)
按行读取文件内容并得到当前行号
文件对象是可迭代的(按行迭代),使用enumerate()即可在迭代的同时,得到数字索引(行号),enumerate()的默认数字初始值是0,如需指定1为起始,可以设置其第二个参数:
with open('somefile', 'r') as f:
for number, line in enumerate(f,start=1):
print(number, line, end='')
"""
1 Hello
2 World
3 Python
"""
作者: 忙 碌 使 我 忘 了 伤 痛
出处: https://www.cnblogs.com/Hello-python/>
关于作者:专注python、linux、运维、IT,请多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(1198987828@qq.com)咨询.