[英]How to open and read text files in a folder python
我有一个文件夹,里面有一个文本文件。 我希望能够输入此文件的路径并让 python 遍历该文件夹,打开每个文件并将其内容附加到列表中。
import os
folderpath = "/Users/myname/Downloads/files/"
inputlst = [os.listdir(folderpath)]
filenamelist = []
for filename in os.listdir(folderpath):
if filename.endswith(".txt"):
filenamelist.append(filename)
print(filename list)
到目前为止,这个输出:
['test1.txt', 'test2.txt', 'test3.txt', 'test4.txt', 'test5.txt', 'test6.txt', 'test7.txt', 'test8.txt', 'test9.txt', 'test10.txt']
我想让代码获取这些文件中的每一个,打开它们并将其所有内容放入一个巨大的列表中,而不仅仅是打印文件名。 有没有办法做到这一点?
如果您使用的是 Python3,则可以使用:
for filename in filename_list :
with open(filename,"r") as file_handler :
data = file_handler.read()
请注意,您将需要文件filename
中filename
的完整(相对或绝对)路径
这样,当您离开with
范围时,您的文件处理程序将自动关闭。 这里的更多信息: https : //docs.python.org/fr/3/library/functions.html#open
附带说明一下,为了列出文件,您可能需要查看glob并使用:
filename_list = glob.glob("/path/to/files/*.txt")
您应该为此使用文件打开。 在此处阅读有关其高级选项的文档
无论如何,这是一种方法:
import os
folderpath = r"yourfolderpath"
inputlst = [os.listdir(folderpath)]
filenamecontent = []
for filename in os.listdir(folderpath):
if filename.endswith(".txt"):
f = open(os.path.join(folderpath,filename), 'r')
filenamecontent.append(f.read())
print(filenamecontent)
您可以使用文件fileinput
代码:
import fileinput
folderpath = "your_path_to_directory_where_files_are_stored"
file_list = [a for a in os.listdir(folderpath) if a.endswith(".txt")]
# This will return all the files which are in .txt format
get_all_files = fileinput.input(file_list)
with open("alldata.txt", 'ab+') as writefile:
for line in get_all_files:
writefile.write(line+'\n')
上面的代码将从指定目录( folderpath )中读取.txt
所有数据并将其存储在alldata.txt因此,您想要拥有那个长列表,如果需要,该列表现在存储在 .txt 文件中,否则您可以去掉写进程。
链接:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.