从包含 txt 文件的文件夹中仅获取所需的 txt 文件 - Python

anfwkdrn

我有一个包含文件的.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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章