我有一个脚本,可以下载约1000个csv文件,将它们分类为5个csv文件,然后将这5个文件分类为1个csv文件。
该脚本可以正常运行,但是显然,无论您在哪里运行该程序,在运行该脚本时最终都会得到一千个csv文件。有没有办法脚本完成后将创建的所有csv文件移动到名为“数据”或类似名称的新文件夹中?
Thanks.
答案 0 :(得分:1)
此代码对我有用:
import glob, os, shutil
source_dir = 'C:/Users/george/Desktop/my aemo app/a'
dst = 'C:/Users/george/Desktop/my aemo app/b'
files = glob.iglob(os.path.join(source_dir, "*.csv"))
for file in files:
if os.path.isfile(file):
shutil.copy2(file, dst)
答案 1 :(得分:0)
shutil
模块可让您使用Python移动文件。语法如下:
# Preferably put this near the top of your script:
import shutil
# Use this to move a file:
shutil.move("path/to/original/file.csv", "path/to/destination/file.csv")
如果所有.csv文件当前都在目录中,并且您想生成所有路径的列表(基本上等价于“ ls *.csv
”或“ dir *.csv
”),则可以使用Python的os
模块:
import os
my_csv_files = []
for file in os.listdir("/my_csv_dir"):
if file.endswith(".csv"):
my_csv_files.append(os.path.join("/my_csv_dir", file))
然后可以遍历生成的列表。或者,只需将append
命令替换为上述move
命令,即可将每个移至新文件夹。
顺便说一句,我在您的示例中看到了很多重复的代码。您可能需要考虑编写几个函数来完成这些任务,以使您的代码更易于维护,并且仅为代码大小的1/3。