编写一个调用不同目录的python脚本

时间:2014-02-03 14:49:11

标签: python bash

有点难以解释,但我使用的目录中有许多不同的文件,但基本上我想循环不规则间隔的文件

所以在伪代码中我想它会写成:

A = 1E4, 1E5, 5E5, 7E5, 1E6, 1.05E6, 1.1E6, 1.2E6, 1.5E6, 2E6

For A in range(start(A),end(A)):
   inputdir ="../../../COMBI_Output/Noise Studies/[A] Macro Particles/10KT_[A]MP_IP1hoN0.0025/"

运行其余代码

因为目前我是通过更改[A]中的值来手动完成的,这是一场噩梦和耗时。我在macbook上使用Python所以我想知道在bash内编写一个Python脚本是否是正确的想法?

或者用文本文件替换A,使其:

import numpy as np

mpnum=np.loadtxt("mp.txt")
for A in range(0,len(A)):
   for B in range(0,len(A)):
       inputdir ="../../../COMBI_Output/Noise Studies/",[A] "Macro Particles/10KT_",[A]"MP_IP1hoN0.0025/"

但是我先尝试过,但仍然没有运气。

2 个答案:

答案 0 :(得分:1)

你快到了。您不需要范围,只需遍历列表即可。然后使用格式在字符串中进行替换。

A = ['1E4', '1E5', '5E5', '7E5', '1E6', '1.05E6', '1.1E6', '1.2E6', '1.5E6', '2E6']
for a in A:
   inputdir = "../../../COMBI_Output/Noise Studies/{} Macro Particles/10KT_{}MP_IP1hoN0.0025/".format(a)

答案 1 :(得分:0)

将文件名放在列表中并使用简单地迭代它们的想法     对于A: 似乎是最好的主意。但是,如果可能的话,一个小建议,而不是列表,如果你要在这个列表中有大量的文件,为什么不把它作为字典呢?通过这种方式,您可以轻松地遍历文件并对其进行统计。