在脚本末尾,如何将下载的文件移动到新文件夹?

时间:2019-01-22 22:21:25

标签: python pandas numpy

我有一个脚本,可以下载约1000个csv文件,将它们分类为5个csv文件,然后将这5个文件分类为1个csv文件。

该脚本可以正常运行,但是显然,无论您在哪里运行该程序,在运行该脚本时最终都会得到一千个csv文件。有没有办法脚本完成后将创建的所有csv文件移动到名为“数据”或类似名称的新文件夹中?

Thanks.

2 个答案:

答案 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。