【发布时间】:2019-09-07 08:08:21
【问题描述】:
我正在尝试将需要创建的文件夹结构的每个路径放入一个列表中,然后使用os.makedirs() 创建所有这些路径,但出现了问题。仅创建头文件夹,而不创建子文件夹。
def output_folders(trcpaths):
#trcpath is a list with several paths, example: ['/home/usr/folder1', '/home/usr/folder2']
global outputfolders
outputfolders = []
#Create Paths
for x, j in enumerate(trcpaths):
for i in os.listdir(trcpaths[x]):
if i.endswith('trc'):
folderpath1 = (j + '/' + i).split('.')[0] #/home/usr/folder1/outputfolder
folderpath2 = folderpath1 + '/Steps' #/home/usr/folder1/outputfolder/Steps
folderpath3 = folderpath2 + '/Step_1' #/home/usr/folder1/outputfolder/Steps/Step_1
folderpath4 = folderpath2 + '/Step_2'
folderpath5 = folderpath2 + '/Step_3'
folderpath6 = folderpath2 + '/Step_4'
folderpath7 = folderpath2 + '/Threshold'
outputfolders.append(folderpath1)
outputfolders.append(folderpath2)
outputfolders.append(folderpath3)
outputfolders.append(folderpath4)
outputfolders.append(folderpath5)
outputfolders.append(folderpath6)
outputfolders.append(folderpath7)
#Create Folders
for j, i in enumerate(outputfolders):
print(i)
if os.path.exists(i):
if j == 0:
input('The Output-Folder already exists! Overwrite?' )
shutil.rmtree(i)
os.makedirs(i)
虽然当我 print(i) 打印正确的文件夹路径时,但只有“头文件夹路径”像 /home/usr/folder1/outputfolder 一样创建,而不是所有后续文件夹路径。为什么会这样?
这是我得到的:
/home/usr/folder1/outputfolder
/home/usr/folder2/outputfolder
但这正是我需要的:
/home/usr/folder1/outputfolder
/home/usr/folder1/outputfolder/Steps
/home/usr/folder1/outputfolder/Steps/Step_1
/home/usr/folder1/outputfolder/Steps/Step_2
/home/usr/folder1/outputfolder/Steps/Step_3
/home/usr/folder1/outputfolder/Steps/Step_4
/home/usr/folder1/outputfolder/Steps/Threshold
/home/usr/folder2/outputfolder
/home/usr/folder2/outputfolder/Steps
/home/usr/folder2/outputfolder/Steps/Step_1
/home/usr/folder2/outputfolder/Steps/Step_2
/home/usr/folder2/outputfolder/Steps/Step_3
/home/usr/folder2/outputfolder/Steps/Step_4
/home/usr/folder2/outputfolder/Steps/Threshold
【问题讨论】:
-
您使用的确切 python 版本是什么?我在问,因为
os.makedirs()行为完全依赖于版本。见docs.python.org/3/library/os.html#os.makedirs -
Python 3.6.7,我在帖子里编辑过
-
什么是
trcfilename- 它是一个文件夹吗? -
是的。它是一个与文件同名的文件夹。我正在分析 trc 文件并希望输出文件夹与输入文件具有相同的名称。对困惑感到抱歉。我把它改成了
/outputfolder
标签: python-3.x operating-system