我有一个包含文件的.txt
文件夹。文件的名称是:
my_file1.txt
my_file2.txt
my_file3.txt
my_file4.txt
这样,只有最后一个数字不同。
import pickle
my_list = []
with open("/Users/users_a/Desktop/website-basic/sub_domain/sub_domain01.txt", "rb") as f1,
open("/Users/users_a/Desktop/website-ba\
sic/sub_domain/sub_domain02.txt", "rb") as f2, open("/Users/users_a/Desktop/website-
basic/sub_domain/sub_domain03.txt", "rb") as f3:
my_list.append(pickle.load(f1))
my_list.append(pickle.load(f2))
my_list.append(pickle.load(f3))
print(my_list)
这样,我加载一个文件并将其放入my_list
变量中以列出并工作。随着要工作的文件数量的增加,代码变得太长太麻烦。
是否有一种更简单、更 Pythonic 的方式来仅加载所需的txt
文件?
您可以使用os.listdir()
:
import os
import pickle
my_list = []
path = "/Users/users_a/Desktop/website-basic/sub_domain"
for file in os.listdir(path):
if file.endswith(".txt"):
with open(f"{path}/{file}","r") as f:
my_list.append(pickle.load(f))
file
文件的文件名在哪里path
我建议使用
os.path.join()
而不是硬编码文件路径
如果您的文件夹仅包含您要加载的文件,您可以使用:
for file in os.listdir(path):
with open(f"{path}/{file}","r") as f:
my_list.append(pickle.load(f))
编辑_my_file[number].txt
如果您只想要 形式的文件my_file[number].txt
,请使用:
import os
import re
import pickle
my_list = []
path = "/Users/users_a/Desktop/website-basic/sub_domain"
for file in os.listdir(path):
if re.match(r"my_file\d+.txt", file):
with open(f"{path}/{file}","r") as f:
my_list.append(pickle.load(f))
在线正则表达式演示https://regex101.com/r/XJb2DF/1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句