创建一个包含数组字符串作为名称的目录

时间:2015-04-05 01:11:16

标签: python arrays string

我只需要使用

在python中创建一个目录
os.system('mkdir ' + sub_dir)

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/

我只想要一个目录,其名称为上面的整个字符串。

1 个答案:

答案 0 :(得分:1)

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

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

(不是[,而是{),我最终会得到2个目录:foo1.2barfoo1.4bar,因为这就是{a,b,c}的行为方式zsh


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

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

我们最终得到了一个名为foo{1.2,1.4}bar的目录。


因此,在您的情况下,请执行

os.mkdir(sub_dir)