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

use mkdir on python and call list items

我想使用 'subjlist' 中包含的主题名称创建新目录。为此,我将 bash 函数称为 'mkdir',但命令 '+subj+' 似乎无法将其识别为列表中的项目。你知道如何解决这个问题吗?抱歉这个愚蠢的问题,我还在爬行。

#!/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
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 编写目录名称,测试目录是否存在,然后使用 os.makedirs

d = os.path.join("/home/mansur/Documents/mooney",subj,"anatomy/high_res")
if not os.path.exists(d):
    os.makedirs(d)

如果出现问题,至少你会得到一个异常。而且它更快更便携。