python 创建递归文件夹结构
python create recursive folder structure
我正在编写一个脚本来自动创建测试 file/folder 结构 - 另一个脚本的输入(根据文件列表仅移动一些文件)。我下面的代码有效,但是是否有更 pythonic 的方法来完成相同的任务?
import os
import shutil
os.chdir('c:/')
if not os.path.exists('c:/pythontest'):
os.mkdir('c:/pythontest')
else:
shutil.rmtree('c:/pythontest')
os.mkdir('c:\pythontest')
os.chdir('c:/pythontest')
for i in range(0,3):
os.mkdir('folder%d' % i)
fileName = 'folder%d' % i
filePath = os.path.join(os.curdir, fileName)
print filePath
os.chdir(filePath)
for j in range(0,3):
os.mkdir('folder%d_%d' % (i,j))
fileName = 'folder%d_%d' % (i,j)
filePath = os.path.join(os.curdir, fileName)
print str(filePath)
os.chdir(filePath)
for k in range(0,3):
try:
f = open('file%d_%d_%d.txt' % (i,j,k), 'w')
except IOError:
pass
os.chdir('..')
os.chdir('..')
我只能建议几个小的样式改进 -- 并在一个函数中移动所有内容,这样可以加快速度。例如:
import os
import shutil
def doit():
shutil.rmtree('c:/pythontest', ignore_errors=True)
os.mkdir('c:/pythontest')
os.chdir('c:/pythontest')
for i in range(0,3):
fileName = 'folder%d' % i
print fileName
os.mkdir(fileName)
os.chdir(fileName)
for j in range(0,3):
fileName = 'folder%d_%d' % (i,j)
print fileName
os.mkdir(fileName)
os.chdir(fileName)
for k in range(0,3):
try:
with open('file%d_%d_%d.txt' % (i,j,k), 'w'):
pass
except IOError:
pass
os.chdir('..')
os.chdir('..')
微小但累积的改进包括避免重复和避免冗余(例如在文件名前加上“./”以形成完全等效的文件路径)。
我正在编写一个脚本来自动创建测试 file/folder 结构 - 另一个脚本的输入(根据文件列表仅移动一些文件)。我下面的代码有效,但是是否有更 pythonic 的方法来完成相同的任务?
import os
import shutil
os.chdir('c:/')
if not os.path.exists('c:/pythontest'):
os.mkdir('c:/pythontest')
else:
shutil.rmtree('c:/pythontest')
os.mkdir('c:\pythontest')
os.chdir('c:/pythontest')
for i in range(0,3):
os.mkdir('folder%d' % i)
fileName = 'folder%d' % i
filePath = os.path.join(os.curdir, fileName)
print filePath
os.chdir(filePath)
for j in range(0,3):
os.mkdir('folder%d_%d' % (i,j))
fileName = 'folder%d_%d' % (i,j)
filePath = os.path.join(os.curdir, fileName)
print str(filePath)
os.chdir(filePath)
for k in range(0,3):
try:
f = open('file%d_%d_%d.txt' % (i,j,k), 'w')
except IOError:
pass
os.chdir('..')
os.chdir('..')
我只能建议几个小的样式改进 -- 并在一个函数中移动所有内容,这样可以加快速度。例如:
import os
import shutil
def doit():
shutil.rmtree('c:/pythontest', ignore_errors=True)
os.mkdir('c:/pythontest')
os.chdir('c:/pythontest')
for i in range(0,3):
fileName = 'folder%d' % i
print fileName
os.mkdir(fileName)
os.chdir(fileName)
for j in range(0,3):
fileName = 'folder%d_%d' % (i,j)
print fileName
os.mkdir(fileName)
os.chdir(fileName)
for k in range(0,3):
try:
with open('file%d_%d_%d.txt' % (i,j,k), 'w'):
pass
except IOError:
pass
os.chdir('..')
os.chdir('..')
微小但累积的改进包括避免重复和避免冗余(例如在文件名前加上“./”以形成完全等效的文件路径)。