在 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)
如果出现问题,至少你会得到一个异常。而且它更快更便携。
我想使用 '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)
如果出现问题,至少你会得到一个异常。而且它更快更便携。