Python:如何根据项目列表从目录调用csv文件?

Python:如何根据项目列表从目录调用csv文件?,python,Python,我有一个项目列表,我只想调用目录中名称与列表中项目类似的csv文件。我正在做下面的事情,但它读取目录中的所有文件。请建议 x_list = [ a,b,c,d] files in directory = [a.csv, b.csv, c.csv, d.csv, e.csv, f.csv] for files in os.listdir(dir + 'folder\\'): file_name = files[:files.find('.')] if file_name in x

我有一个项目列表,我只想调用目录中名称与列表中项目类似的csv文件。我正在做下面的事情,但它读取目录中的所有文件。请建议

x_list = [ a,b,c,d]
files in directory = [a.csv, b.csv, c.csv, d.csv, e.csv, f.csv]

for files in os.listdir(dir + 'folder\\'):
    file_name = files[:files.find('.')]
    if file_name in x_list:
        print(file_name) 

您可以使用正则表达式,对于正则表达式,您需要re模块

import re
print(*(file for file in os.listdir() if re.match(r".*\.csv", file) and file[:-4] in x), sep='\n') 

您还可以使用过滤器功能:

print(*filter(lambda file:  re.match(r".*\.csv", file) and file[:-4] in x, os.listdir(), sep='\n')
来自官方文档:“glob模块根据unixshell使用的规则查找与指定模式匹配的所有路径名,尽管结果以任意顺序返回。”

导入全局
dirPath=“/home/…”
pattern=dirPath+“*.csv”
对于glob.glob(模式)中的文件路径:
打印(文件路径)

您只需打开列表中的CSV即可:您可以这样做:


#a b c d是不带.csv扩展名的csv的名称
my_csvs_names='a b c d'.split()
my_csvs_folder='c/path/to/my_folder'
对于我的csv\U名称中的csv\U名称:
file_name=f'{my_csvs_folder}/{csv_name}.csv'
尝试:
打开(文件名为“r”)作为f\u in:
对于f_in中的行:
#用它做点什么
打印(行)
除FileNotFoundError外:
打印(f'{file_name}不存在')

在执行某些操作时,您可以将值附加到变量或您试图实现的任何内容。

Hi.“my\u csvs\u names”是一个列表吗?因为我有一张名单。是的<代码>'abc'.split()=['a','b','c']谢谢您的回复。基于post的“文件名”可能是什么?您可以使用应用于文件路径的拆分命令(列表中最后一个elmt为file.csv):