在python和调用列表项上使用mkdir

2024-04-28 08:51:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用“sublist”中包含的主题名称创建新目录。我为so调用bash函数'mkdir',但是命令'+subm+'似乎没有将其识别为列表中的一个项。你知道怎么解决这个问题吗?抱歉问这个愚蠢的问题,我还在爬。在

#!/usr/bin/python

import glob
import os

path ='/data2/kizilirm/Mooney_fMRI_v01/subject_data'

subjlist = ['di21_1028', 'dn20_1072', 'ed17_1026', 'eo56_1016', 
'ge51_1039', 'ha96_1069', 'hp84_1024', 'ht02_1049', 'hw44_1051', 
'ij99_1073', 'ja58_1070', 'ju49_1036', 'km61_1064', 'kr25_1034', 
'lw37_1062', 'lz02_1041', 'mj45_1037', 'nm54_1017', 'od90_1040', 
'ol12_1063', 'os19_1038', 'ow93_1061', 'pk62_1074', 'qq31_1068',         
'qq39_1060', 'tt42_1025', 'ut93_1048', 'ws81_1042','xi27_1050', 
'zd63_1035']

#'series_2_t1_mpr_sag_1iso_p2', 
runlist = ['series_2_t1_mpr_sag_1iso_p2','series_3_BOLD-
fMRI_2x2x(3+0.3)_p2_run1', 'series_4_BOLD-fMRI_2x2x(3+0.3)_p2_run2', 
'series_5_BOLD-fMRI_2x2x(3+0.3)_p2_run3']

os.system("mkdir /home/mansur/Documents/mooney")
counter = 0

for subj in subjlist:
    for run in runlist:
        if run == 'series_2_t1_mpr_sag_1iso_p2':
            print subj , run
            counter = counter + 1
            os.system("mkdir -p 
'/home/mansur/Documents/mooney/'+subj+'/'anatomy/high_res") #Here is the problem!!!
        else:
            continue
print counter

Tags: runimportoscounterseriest1p2bold
1条回答
网友
1楼 · 发布于 2024-04-28 08:51:52
os.system("mkdir -p '/home/mansur/Documents/mooney/'+subj+'/'anatomy/high_res") 

正在将'/home/mansur/Documents/mooney/'+subj+'/'anatomy/high_res逐字传递给mkdir。。。在

您必须使用format。无论如何,不要调用系统命令来执行mkdir -p。使用os.path.join组合目录名,测试dir是否存在,并使用os.makedirs

^{pr2}$

如果出了问题,至少你会得到一个例外。而且它的速度更快,便携性更好。在

相关问题 更多 >