csv 使用不同目录中的不同文件多次运行python脚本

rqmkfv5c  于 2022-12-06  发布在  Python
关注(0)|答案(1)|浏览(124)

我试着多次执行Python脚本,但使用来自不同目录的不同CSV文件,但我知道如何只使用一个目录...
下面是树结构:

Directory_1
 |
 |---> FileA
 |---> FileB
 .....

Directory_2
 |
 |---> File2_A
 |---> File2_B
 .....

我的代码:

import os
import sys

directory1_path = "CSV_Files/FileX_CSV/"
directory2_path = "CSV_Files/File2_X_CSV/"

for fileX in os.listdir(directory1_path):
    if fileX.endswith(".csv"):
        with open(os.path.join(directory1_path , fileX)):
            os.system(f'python LoadingX.py -i1 {fileX}  -i2 {file2_x} -o1 LoadX_concat.csv )

我必须用相同的文件名读取和运行python命令行,例如:

first run: -i1 file_A -i2 file2_A
second execution: -i1 file_B -i2 file2_B
...etc

但是我不知道如何使用当前的for循环来处理这个问题,该循环检查CSV文件是否存在并获取其名称......另一方面,我知道对于打开的行,我可以同时处理它几次。

6uxekuva

6uxekuva1#

假设文件在两个目录中都是排序的,并且根据顺序成对匹配,你可以将它们一起zip,同时在两个目录中迭代。你也可以只将CSV文件filter进行迭代。

import os

directory1_path = "CSV_Files/FileX_CSV/"
directory2_path = "CSV_Files/File2_X_CSV/"

is_csv = lambda f: f.endswith(".csv")
dir1csvs = filter(is_csv, os.listdir(directory1_path))
dir2csvs = filter(is_csv, os.listdir(directory2_path))
for f1, f2 in zip(dir1csvs, dir2csvs):
    os.system(f'python LoadingX.py -i1 {f1}  -i2 {f2} ...')

根据您的问题,我看不出您有理由对这些文件进行open,因为您似乎只使用它们的名称作为参数。

相关问题