我正在编写一个脚本来自动创建测试文件/文件夹结构 - 输入另一个脚本(根据文件列表仅移动一些文件)。我的代码可以使用,但是有更多的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('..')
答案 0 :(得分:0)
我只能建议几个小的风格改进 - 并在一个功能中移动所有东西,这会加快速度。 E.g:
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('..')
次要但累积性的改进包括避免重复和避免冗余(例如在文件名之前添加'。/'以制作完全相同的文件路径)。