问题描述:
我只需要在Python创建一个目录,创建具有阵列串的目录中使用</p> <pre><code>os.system('mkdir ' + sub_dir) </code></pre> <p>名
sub_dir = ('x_y_prior=' + str(not use_est_centroid) +
'_randomized_x_y=' + str(randomize) +
'_sep=' + str(separation) +
'_num_trial_arr=' + str(num_trial_arr) +
'_seed_arr=' + str(seed_arr) +
'_image_params=' + str(image_params) +
'_obj_a_info=' + str(obj_a) +
'_obj_b_info=' + str(obj_a))
变量组成阵列。现在问题是,当我尝试这个命令时,该命令会创建许多目录,并将每个数组的单个元素作为名称。
例如,如果
separation = [1.2,1.4]
然后我会得到两个目录名为
1.2/
和
1.4/
我只是想与整个字符串上面的名字一个目录。
答
你的情况
您并未使用Python创建目录,而是要求命令shell执行命令mkdir
来创建目录。现在的问题是,命令shell可以解释一些字符作为元字符 - ,例如我在Linux上使用zsh
shell,如果我执行:
os.system("mkdir foo{1.2,1.4}bar")
(不[
但{
那里),我将结束有2个目录:foo1.2bar
和foo1.4bar
,因为{a,b,c}
的行为方式是zsh
。
现在当然解决方案是使用蟒蛇来创建这个目录:
os.mkdir("foo{1.2,1.4}bar")
而且我们最终有一个名为foo{1.2,1.4}bar
目录。
你的情况
因此,做
os.mkdir(sub_dir)
什么?你能提供输出目录名称或结构的例子吗? – Marcin 2015-04-05 01:12:39
您可以在传递之前尝试使用join()将列表转换为字符串。是否有任何具体原因使用os.system而不是os.mkdir? – skar 2015-04-05 01:18:42