繁体   English   中英

使用Python以与文件名匹配的文件夹名称递归创建文件夹

[英]Use Python to Create Folders Recursively with Folder Names Matching Filenames

是否有Python方法来递归创建目录? 我有这条路:

/ home / data /中包含文件“ table1.csv”,“ table2.csv”,...,“ table1000.csv”

我想创建:/ home / data / table1并在其中移动“ table1.csv”; / home / data / table2并在其中移动“ table2.csv”; / home / data / table1000并在其中移动“ table1000.csv”;

文件夹名称必须与csv文件名称匹配。

我该如何递归呢? 我知道应该使用os.makedirs()不确定它是如何工作的。

非常感谢。

注意:“ table1”和“ table2”等只是虚拟示例文件名。 实际的文件名有点复杂。

使用mkdiros库创建每个目录。

https://docs.python.org/2/library/os.html

对于每个目录,请使用shutil.move移动当前文件。

如何在Python中移动文件

每次迭代应如下所示:

for i in range(1, 1001):
    os.mkdir('/home/data/table' + str(i))
    shutil.move('/home/data/table' + str(i) + '.csv', '/home/data/table' + str(i) + '/table' + str(i) + '.csv')

我将以以下方式在Python中工作:

1.获取列表中文件夹中的所有文件

2.浏览列表的文件名并:

  1. 创建具有确切名称的文件夹(前提是您没有重复的名称)
  2. 移动文件夹中的文件
  3. 下一个档案

在网上进行简单的搜索即可获得有关如何完成上述每个步骤的示例。

编辑:下面是一个简单的csv文件示例。

import glob, os
import shutil
dir="D:\Dropbox\MYDOCS\DEV\python\snippets"
os.chdir(dir)
for file in glob.glob("*.csv"):
    dst=dir+"\\"+file.replace(" ","_").replace(".csv","")
    os.mkdir(dst)
    print(dst)
    shutil.move(file,dst)

使用的Windows路径,因为我使用Windows,所以您需要将其更改为Linux路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM