我有许多目录,每个目录都有一个输入文件,其中的值存储如下:
1.1, 2.2, 2.87, 3.5
41.3, 305, 300, 712
我写了一个python脚本来遍历每个目录并读取输入文件,并将数字存储在不同的变量中。 例如,对于上述输入文件,脚本应将8个数字存储在8个不同的变量中,例如a = 1.1,b = 2.2,c = 2.87,d = 3.5,e = 41.3,f = 305,g = 300和h = 712
为此,我编写了以下脚本。
import numpy as np
import os
import glob
import h5py
from pathlib import Path
a = 0; b = 0; c = 0; d = 0; e = 0; f = 0; g = 0; h = 0
dir_to_scan = "/data/abcd"
p = Path(dir_to_scan)
for x in p.iterdir():
configfile = x.joinpath("rough.txt")
with open(float(configfile)) as f:
f.read("{a}, {b}, {c}, {d}\n{e}, {f}, {g}, {h}")
#print (a[0])
f.close()
但是执行后,它显示以下错误:
TypeError: integer argument expected, got 'str'
答案 0 :(得分:0)
您必须使用f.read()
读取整个文件,在每个换行符(\n
)和每个逗号处将其分割,然后将每个值转换为float:
with open(configfile) as f:
lines = f.read().split('\n')
a, b, c, d = [float(v) for v in lines[0].split(', ')]
e, f, g, h = [float(v) for v in lines[1].split(', ')]
如果使用f.close()
,则不需要with
。该文件将在with
块