是否有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'等只是虚拟的示例文件名。实际的文件名有点复杂。
答案 0 :(得分:1)
使用mkdir
从os
库创建每个目录。
https://docs.python.org/2/library/os.html
对于每个目录,请使用shutil.move
移动当前文件。
每次迭代应如下所示:
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')
答案 1 :(得分:1)
我将以以下方式在Python中工作:
1。获取列表中文件夹中的所有文件
2。遍历列表的文件名和:
在网上进行简单的搜索就会为您准备好完成上述每一步的示例。
编辑:下面是一个简单的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路径。