我正在尝试访问目录并打印出其中所有文件的内容。
for fn in os.listdir('Z:/HAR_File_Generator/HARS/job_search'):
print(fn)
当我使用此代码时,它所做的就是打印出文件名。我该怎么做才能让我真正得到文件的内容?我已经看到很多方法可能会这样做,但我想知道是否有一种方法可以采用与我相同的格式。我无法获取文件内容而不是名称,这对我没有意义。对我来说有意义的是做fn.read()
然后将其打印出来,但这不起作用。
答案 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