[英]How to open multiple files one-by-one and print the contents in Python
我正在研究一个逐个读取多个文件(从单个文件中的文件名)的函数。 我设置了获取文件中文件名数量的方法,但我不确定在循环序列中应该使用什么。 这是我现在的位置:
with open('userdata/addedfiles', 'r') as read_files:
number_of_files = sum(1 for _ in read_files)
print(number_of_files, "files added")
print("File contents: \n")
# get individual filenames in file and
# read them one by one
for x in range(number_of_files):
# hmm...
关于在这里使用什么的任何建议? 谢谢。
你有正确的想法,但是对于你当前的设置,你将在输入文件中循环几次,超过必要的数量。 让我们尝试这样的事情:
with open('userdata/addedfiles', 'r') as read_files:
file_lines = read_files.readlines()
# print the length of the lines from the input file
print(len(file_lines), "files added")
# do stuff per line (which in your case is a file name)
for file_name in file_lines:
print(file_name.strip())
我不确定你想要实现什么,但下面的代码将打开userdata/addedfiles/
所有文件,并userdata/addedfiles/
打印文件名和内容。
你可以使用glob
import glob
for file in glob.glob("userdata/addedfiles/*"):
print file
myfile = open(file,"r")
lines = myfile.readlines()
for line in lines:
print line.strip();
不清楚你为什么需要获取主文件中的文件数量,但为什么不只是:
with open('userdata/addedfiles', 'r') as read_files:
for infile in read_files:
with open(infile) as infile2:
# Do something with contents
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.