python - 创建一个以数组字符串作为名称的目录

标签 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/

我只想要一个包含上面整个字符串名称的目录。

最佳答案

您不是在 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)

关于python - 创建一个以数组字符串作为名称的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29453114/

相关文章:

java - java和python并行处理的区别

python - 了解 SQLAlchemy 中的中间 SQL 语句

Python:使用递归返回文件的完整路径

python - 这个操作怎么称呼?

python - 值错误 : invalid literal for int() with base 10 for non-digits

c# - 如何使用 LINQ 对数组进行分页?

ruby-on-rails - 按 bool 值分组但在 ruby​​ on rails 中更改键

c# - Javascript中获取满足特定条件的数组内的数组

C# 连接字符串或字符数组

java - 如何在不使用第三个变量的情况下在 Java 中交换两个字符串变量