【发布时间】:2021-02-26 17:51:00
【问题描述】:
如何在多个文件夹中找到具有相同文件名的文件,然后执行相同的操作?
def findCommonDeep(path1, path2):
return set.intersection(*(set(os.path.relpath(os.path.join(root, file), path) for root, _, files in os.walk(path) for file in files) for path in (path1, path2)))
lista = []
for x in [2010, 2017, 2020]:
if x > 2015:
filepath = rf'My Documents\Analysis\{x}\LateAnalysis\*.csv'
else:
filepath = rf'My Documents\Analysis\{x}\Early_Analysis\*.csv'
fname = os.path.basename(filepath, filepath)
findCommonDeep(fname)
for file in glob.glob(filename_common):
df = pd.read_csv(file)
df = df.set_index('date')
lista.append(df)
【问题讨论】:
-
findCommonDeep使用单个 arg 文件名调用,但使用 2 个关于路径的 args 定义。? -
是的,我很困惑。只需要找到所有文件夹之间的公共文件
-
你能定义一下你所说的普通文件是什么意思吗?
-
例如所有文件夹中的
"file1.csv" -
递归地把它们全部全局化:glob.glob('**/file1.csv')
标签: python python-3.x pandas