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

时间:2016-08-17 16:50:52

标签: python python-3.x

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:

这是我现有的代码。它需要用户输入来搜索用户指定的文件,然后将该文件添加到列表中,并通过循环逐个打开每个文件。我想尝试使其更加自动化,以便脚本将自动获取此进程的给定文件夹中的所有文件,而不是用户必须为每个文件输入名称。关于如何使其更加自动化的任何建议?

2 个答案:

答案 0 :(得分:1)

使用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:

答案 1 :(得分: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:
        # ....