如何自动打开给定文件夹中的所有文本文件?

7
file_name=[]
user_input= input('File name: ')
while user_input != "":
    part_name.append(user_input)
    user_input = input('File Name: ')

measure_list=[]    
for f in file_name :
    with open("/Users/Desktop/File/%s.txt" %f ,"r",encoding="UTF-16") as read_file:

这是我现有的代码。目前它接受用户输入以搜索由用户指定的文件,然后将该文件添加到列表中,并通过循环逐个打开每个文件。我想尝试使这更加自动化,以便脚本可以自动获取给定文件夹中的所有文件进行此过程,而不是用户必须为每个文件输入名称。有什么建议可以使这更加自动化吗?


你看过glob模块os.listdir了吗? - janbrohl
谢谢John Sharpe,我以为在提问之前已经看得够仔细了,但下次我想我需要再深入挖掘一些。 - Chase Garfield
2个回答

2

使用 os.listdir

for f in os.listdir("/Users/Desktop/File/"):
    with open(f, "r", encoding="UTF-16") as read_file:

使用 glob.glob 来选择与给定模式匹配的文件:

for f in glob.glob("/Users/Desktop/File/*.txt"):
    with open(f, "r", encoding="UTF-16") as read_file:

谢谢,glob.glob 帮了大忙。 - Chase Garfield

1
你可以使用一个新的Python库pathlib代替:
from pathlib import Path

p = Path.cwd() 
files = [x for x in p.iterdir()]
for file in files:
    with open(str(file), 'r', encoding="UTF-16") as f:
        # ....

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接