我正在尝试编写一个脚本,该脚本将从.xvg文件中收集值。我有20个包含目标文件的文件夹。文件夹的编号从1到20(在代码中看到1.Rimo)
我已经编写了指定全路径时收集数据的代码,但是,我需要一些通用的东西,因此我可以遍历这20个文件夹,获取该数据并将其存储为变量。
rmsf = open('/home/alispahic/1.CB1_project/12.ProductionRun/1.Rimo/rmsf.xvg','r+')
for line in rmsf:
if line.startswith(' 4755'):
print (line)
l = line.split()
print (l)
value = float(l[1])
sum1 = float(sum1) + value
print(len(l))
print (sum1)
答案 0 :(得分:0)
您可以使用os.listdir()
:
base_path = '/home/alispahic/1.CB1_project/12.ProductionRun'
file_name = 'rmsf.xvg'
for dir_name in os.listdir(base_path):
print(dir_name)
with open(os.path.join(base_path, dir_name, file_name)) as f:
for line in f:
# here goes your code
pass
仅记得将dir_name
与base_path
(要遍历的目录路径)连接起来。
还请注意,这也会返回文件,而不仅仅是目录。如果您的文件夹/home/alispahic/1.CB1_project/12.ProductionRun
仅包含目录,则不会有问题;否则,您将需要过滤掉文件。
答案 1 :(得分:0)
我已经通过添加glob解决了这个问题。
for name in glob.glob('/home/alispahic/1.CB1_project/12.ProductionRun/*/rmsf.xvg'):
for line in open(name):
if line.startswith(' 4755'):