创建具有阵列串的目录中使用

os.system('mkdir ' + sub_dir) 

问题描述:

我只需要在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/ 

我只是想与整个字符串上面的名字一个目录。

+0

什么?你能提供输出目录名称或结构的例子吗? – Marcin 2015-04-05 01:12:39

+2

您可以在传递之前尝试使用join()将列表转换为字符串。是否有任何具体原因使用os.system而不是os.mkdir? – skar 2015-04-05 01:18:42

您并未使用Python创建目录,而是要求命令shell执行命令mkdir来创建目录。现在的问题是,命令shell可以解释一些字符作为元字符 - ,例如我在Linux上使用zsh shell,如果我执行:

os.system("mkdir foo{1.2,1.4}bar") 

(不[{那里),我将结束有2个目录:foo1.2barfoo1.4bar,因为{a,b,c}的行为方式是zsh


现在当然解决方案是使用蟒蛇来创建这个目录:

os.mkdir("foo{1.2,1.4}bar") 

而且我们最终有一个名为foo{1.2,1.4}bar目录。


你的情况

因此,做

os.mkdir(sub_dir)