繁体   English   中英

如何逐个打开多个文件并在Python中打印内容

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM