我正在尝试读入一个包含大量值和相关错误的数据文件,例如:
(-5.63150902306 +/- 0.549562002684) * (9.62647766508 +/- 1.00395610402)
(5.92097311289 +/- 0.79652553075) * (5.62917665811 +/- 0.772898764928) / (3.2342 +/- 2.4235)
我使用以下内容成功阅读了“细分”:
FileSegments = [lin.split( ) for line in File.readlines()]
但我也想同时删除大括号'('')'我试过
FileSegments = str([lin.split( ) for line in File.readlines()]).translate(None, ')(')
但是当我尝试打印时,它会随机返回[
!
答案 0 :(得分:1)
您的订单有点混合(也不需要File.readlines()
[line.translate(None, ')(').split() for line in File]
答案 1 :(得分:0)
你可以按照以下方式做点什么:
st='''\
(-5.63150902306 +/- 0.549562002684) * (9.62647766508 +/- 1.00395610402)
(5.92097311289 +/- 0.79652553075) * (5.62917665811 +/- 0.772898764928) / (3.2342 +/- 2.4235)'''
for line in st.splitlines():
print 'line:',line
print line.replace('(','').replace(')','')
打印:
line: (-5.63150902306 +/- 0.549562002684) * (9.62647766508 +/- 1.00395610402)
-5.63150902306 +/- 0.549562002684 * 9.62647766508 +/- 1.00395610402
line: (5.92097311289 +/- 0.79652553075) * (5.62917665811 +/- 0.772898764928) / (3.2342 +/- 2.4235)
5.92097311289 +/- 0.79652553075 * 5.62917665811 +/- 0.772898764928 / 3.2342 +/- 2.4235
答案 2 :(得分:0)
如果您想替换括号,只需在字符串上调用.replace()
即可。
file_segments = [line.replace('(','').replace(')','').split() for line in fh.readlines()]
有关replace
的详细信息,请参阅String Replace。
您也可以使用re.sub()
file_segments = [re.sub('[\(|\)]','', line).split() for line in fh.readlines()]
但请注意,这比.split()
更加强烈。
有关详细信息,请参阅re.sub。