在文件夹中读取同一个文件的文件
我需要一点帮助来完成我的程序。 我在一个文件夹中有20个相同类型的文件,字符串与相应的值。 有没有办法创建一个可以这种方式打开所有文件的函数file1 = [line.strip() for line in open("/Python34/elez/file1.txt", "r")]
?在文件夹中读取同一个文件的文件
我希望我解释得很好。 谢谢!
from os import listdir
from os.path import join, isfile
def contents(filepath):
with open(filepath) as f:
return f.read()
directory = '/Python34/elez'
all_file_contents = [contents(join(directory, filename))
for filename in listdir(directory)
if isfile(join(directory, filename)]
哇这是一个很酷的方式! – biobirdman 2014-12-18 23:59:03
我认为itertools.chain或生成器会更好 – 2014-12-19 00:09:40
我总是得到这个错误 'PermissionError:[Errno 13] Permission denied:'/ Python34/elez'' – Gulliver 2014-12-19 00:33:53
喜格列佛,这是我怎么会做它:
import os
all_files = [] ## create a list to keep all the lines for all files
for file in os.listdir('./'): ## use list dir to list all files in the dir
with open(file, 'r') as f: ## use with to open file
fields = [line.strip() for line in f] ## list comprehension to finish reading the field
all_fields.extend(fields) ## store in big list
更多有关使用with语句来打开和读取文件,请参考此答案Correct way to write to files?
你为什么想共同打开20个文件? – 2014-12-18 23:59:56
我需要阅读每个文件,并在新文件中写一个摘要 – Gulliver 2014-12-19 00:49:56