如何在Python中读取文件的每一行,并将每一行存储为列表中的元素?
我想逐行读取文件,并将每一行附加到列表的末尾。
如何在Python中读取文件的每一行,并将每一行存储为列表中的元素?
我想逐行读取文件,并将每一行附加到列表的末尾。
当前回答
这将从文件中生成一个“数组”。
lines = tuple(open(filename, 'r'))
open返回一个可以迭代的文件。当您遍历一个文件时,您会从该文件中获取行。tuple可以使用迭代器,并从您给它的迭代器中为您实例化一个tuple实例。
其他回答
这将从文件中生成一个“数组”。
lines = tuple(open(filename, 'r'))
open返回一个可以迭代的文件。当您遍历一个文件时,您会从该文件中获取行。tuple可以使用迭代器,并从您给它的迭代器中为您实例化一个tuple实例。
另一个选项是numpy.genfromttxt,例如:
import numpy as np
data = np.genfromtxt("yourfile.dat",delimiter="\n")
这将使数据成为一个NumPy数组,其行数与文件中的行数相同。
您也可以在NumPy中使用loadtxt命令。这比genfromttxt检查的条件更少,因此可能更快。
import numpy
data = numpy.loadtxt(filename, delimiter="\n")
这段代码将把整个文件读入内存,并删除每行末尾的所有空白字符(换行符和空格):
with open(filename) as file:
lines = [line.rstrip() for line in file]
如果您正在处理一个大文件,那么您应该逐行读取并处理它:
with open(filename) as file:
for line in file:
print(line.rstrip())
在Python 3.8及以上版本中,可以使用while循环和walrus运算符,如下所示:
with open(filename) as file:
while (line := file.readline().rstrip()):
print(line)
根据您计划对文件执行的操作以及文件的编码方式,您可能还需要手动设置访问模式和字符编码:
with open(filename, 'r', encoding='UTF-8') as file:
while (line := file.readline().rstrip()):
print(line)
命令行版本
#!/bin/python3
import os
import sys
abspath = os.path.abspath(__file__)
dname = os.path.dirname(abspath)
filename = dname + sys.argv[1]
arr = open(filename).read().split("\n")
print(arr)
运行方式:
python3 somefile.py input_file_name.txt