打印目录中所有文件的内容

时间:2015-06-17 20:12:45

标签: python file directory

我正在尝试访问目录并打印出其中所有文件的内容。

for fn in os.listdir('Z:/HAR_File_Generator/HARS/job_search'):
    print(fn)

当我使用此代码时,它所做的就是打印出文件名。我该怎么做才能让我真正得到文件的内容?我已经看到很多方法可能会这样做,但我想知道是否有一种方法可以采用与我相同的格式。我无法获取文件内容而不是名称,这对我没有意义。对我来说有意义的是做fn.read()然后将其打印出来,但这不起作用。

3 个答案:

答案 0 :(得分:1)

directory = 'Z:/HAR_File_Generator/HARS/job_search'
for fn in os.listdir(directory):
   print(open(os.path.join(directory, fn), 'rb').read())

编辑:你应该关闭你的文件,但那是一个单独的问题。

答案 1 :(得分:1)

mydir = 'Z:/HAR_File_Generator/HARS/job_search'

for fn in os.listdir(mydir):
    print open(mydir+'/'+fn).readlines()

为什么您的代码不打印任何文件内容?因为您没有阅读任何文件内容。

适合打印..

for fn in os.listdir(mydir):
    for line in open(mydir+'/'+fn).readlines():
        print line

如果文件大得多,可以避免这个关闭问题,

for fn in os.listdir(mydir):
    with open(mydir+'/'+fn) as fil:
        print fil.readlines()

答案 2 :(得分:1)

假设它们是可以实际打印的文本文件:

dirpath = 'Z:/HAR_File_Generator/HARS/job_search'
for fn in os.listdir(dirpath):
    with open(os.path.join(dirpath, fn), 'r') as f: # open the file
        for line in f: # go through each line
            print(line) # and print it

或者,在Python 3(或具有正确导入的Python 2)中:

dirpath = 'Z:/HAR_File_Generator/HARS/job_search'
for fn in os.listdir(dirpath):
    with open(os.path.join(dirpath, fn), 'r') as f: # open the file
        print(*f, sep='') # and send every line to the print function