根据条件从其他文件夹下的文件夹中导入csv文件



我想根据条件从另一个文件夹中的文件夹复制和粘贴csv文件。

主文件夹名称为"main",其中有文件夹,分别为main_1, main_2, main_3,......、main_45。每个文件夹中也有csv文件,分别是a1、b2、c3、d4、e5、........z30。

我只想从文件夹中复制a1.csv, b2.csv和c3.csv并将它们粘贴到另一个空文件夹中。这对我来说太复杂了,但我相信对专家来说很容易。提前感谢

os.walk遍历目录并以string形式显示所有文件。

遍历main文件夹,如果文件名以.csv结尾,则使用shutil.copyfile函数复制它

import os, shutil
for p, d, f in os.walk("main"):
for fname in f:
if fname.endswith(".csv"):
shutil.copyfile(os.path.join(p, f), os.path.join("ANOTHER EMPTY FOLDER NAME", f))

文档:https://docs.python.org/3/library/os.html

https://docs.python.org/3/library/shutil.html

如果您想要某个文件夹和子文件夹下的所有CSV文件名,一个简单的方法是使用Python的glob.glob()函数。这样,您可以为CSV文件指定*.csv,并使其递归到子文件夹:

import glob
for csv_filename in glob.glob(r'C:main***.csv', recursive=True):
print(csv_filename)

如果您只想复制以a1a3c10开头的CSV文件名,例如,正则表达式可以帮助:

import glob
import os
import shutil
import re
re_abc123 = re.compile('[a-z]d+')
for csv_filename in glob.glob(r'C:main***.csv', recursive=True):
basename = os.path.basename(csv_filename)

if re_abc123.match(basename):
print(csv_filename)
shutil.copyfile(csv_filename, os.path.join('output_folder', basename))

最新更新