Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环多个文件夹中的常见文件_Python_Python 3.x_Pandas - Fatal编程技术网

Python 循环多个文件夹中的常见文件

Python 循环多个文件夹中的常见文件,python,python-3.x,pandas,Python,Python 3.x,Pandas,如何在多个文件夹中找到具有相同文件名的文件,然后执行相同的操作 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))) 在标记熊猫之后,让我们使用pand

如何在多个文件夹中找到具有相同文件名的文件,然后执行相同的操作

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)))

在标记熊猫之后,让我们使用
pandas
pathlib
返回具有类似名称的文件字典:

from pathlib import Path 
import pandas as pd 

def return_similair_files(start_dir : str) -> dict:

   all_files = Path(start_dir).rglob('*.csv')
   df = pd.DataFrame({'files' : all_files})
   df['name'] = df['files'].apply(lambda x : x.name) #pathlib method. 

   return df.groupby('name')['files'].agg(list).to_dict()

这将返回一个文件字典,如下所示:

{'file_1.csv' : [list_of_paths]}

然后,您可以根据需要对它们进行操作。

findCommonDeep
使用单个参数文件名调用,但使用关于路径的两个参数定义。是的,我感到困惑。只需找到所有文件夹之间的公共文件即可扫描您定义的公共文件是什么意思?例如,所有文件夹中的
“file1.csv”
必须递归地将它们全部全局化:glob.glob('**/file1.csv')谢谢!我是在循环中运行函数还是在循环中运行函数?确切位置?@asd no函数替换循环,然后您可以非常简单地创建数据帧,方法是调用
dfs={name:pd.read_csv(f)作为名称,file in dictionary.items()作为f in files}
或类似的命令:)谢谢。如果该函数有一个参数,
start\u dir
,那么其他文件夹文件路径去哪里?对不起,误会了。如果
start\u dir
表示:
'mydocuments\Analysis\
,我想这是行不通的,因为该文件夹还有其他不相关的文件CSVs@asd很抱歉错过了此评论,您误解了
rglob
它拖网了整个目录结构。您可以使用许多
pathlib
方法来过滤路径。您必须用更具体的用例更新您的问题,因为我不理解您的问题抱歉误解。如何实际使用该函数。运行函数后,是否运行
返回类似文件(“我的文档\分析”)
?我在哪里过滤路径?
{'file_1.csv' : [list_of_paths]}