Python:迭代移动文件夹

时间:2018-11-16 20:57:13

标签: python csv shutil

我需要整理超过52k的csv文件,并希望找到一种有效的方法来通过python或其他途径来实现。

当前我有这些文件夹

  

2013_Q1
2013_Q2
2013_Q3
2013_Q4
2014_Q1 ...

以此类推

在Quarter文件夹中,我还有另一个文件夹:

  

xxxx20130101_000500_csv
xxxx20130101_000500_xml
  xxxx20130101_001000_csv
xxxx20130101_001000_xml

等。

在该文件夹中,我有以下文件:

  

xxxx20130101_000500_csv.csv
xxxx20130101_000500_xml.xml
  xxxx20130101_001000_csv.csv
xxxx20130101_001000_xml.xml

分别。

我想浏览所有四分之一文件夹,并从每个子文件夹中仅提取.csv文件,并按其各自的日期将它们组织在一个文件夹中。

因此,在2013_Q1文件夹中,我想要

  

20130101
  20130102 ...

以此类推

在该20130101文件夹中将是

  

xxxx20130101_000500_csv.csv
xxxx20130101_001000_csv.csv
  xxxx20130101_001500_csv.csv

现在我有了python代码:

import shutil
import os

os.chdir('C:\\...\\Test')

 for f in os.listdir('MovingFolders'):
    folderName = f[-19:-11]

    if not os.path.exists(folderName):
        os.mkdir(folderName)
        shutil.copy(os.path.join('MovingFolders', f), folderName)
    else:
        shutil.copy(os.path.join('MovingFolders', f), folderName)

我是python的新手,并且仍在学习中,所以我有点困惑。

1 个答案:

答案 0 :(得分:0)

对于Python 3.5及更高版本:

您可以使用glob中的一个递归功能。 这是你的工作 导入glob

循环遍历glob.glob('root / ** / *。csv',recursive = True)