0

我有 2 个包含多个文件的目录(读取为 CSV)。文件名表示特定的客户编号。我阅读文件如下,

for dirpath, dirs, files in os.walk("/path/to/file/"):
    for file in files:
        directory1(os.path.join(dirpath, file))

我以 CSV 格式读取这些文件。

如果 directory2 文件名(文件)与 directory1 中的文件名匹配,那么我想将数据作为一个文件附加在一起。

如果目录 1 中不存在文件名(文件),则按原样复制数据。

此新文件应保存到新目录。

4

1 回答 1

1

您可以尝试以下方法:

import os
import glob
import shutil

dir1 = "/path/to/dir1/"
dir2 = "/path/to/dir2/"
new_dir = "/path/to/dir3/"
fpaths_dir1 = glob.glob(os.path.join(dir1, '*.csv'))
fpaths_dir1 = [os.path.basename(fpath) for fpath in fpaths_dir1]
fpaths_dir2 = glob.glob(os.path.join(dir2, '*.csv'))
fpaths_dir2 = [os.path.basename(fpath) for fpath in fpaths_dir2]

for fpath in fpaths_dir1:
    if fpath in fpaths_dir2:
        f1 = os.path.join(dir1, fpath)
        f2 = os.path.join(dir2, fpath)
        # write your code to open both files
        # and contatenate
    else:
        f1 = os.path.join(dir1, fpath)
        f3 = os.path.join(new_dir, fpath)
        shutil.copyfile(f1, f3)

append the data together as one file我把它留给你,如果有任何问题请告诉我..

于 2020-02-27T02:25:39.457 回答