【发布时间】:2018-05-16 06:24:07
【问题描述】:
我有一个关于从 python 中的.txt 文件中提取数据的问题。
我的 data.txt 文件如下所示
data 2018/05/37
time 5:5:55
1.234 5.241 6.284 .....
它有一些字符串,后跟 44388 个浮点数。
我使用下面的行来提取它:
mylist=[]
with open('folderpath' + 'filenameA.txt') as f:
mylist.append(re.findall('\d*?\.\d+', f.read()))
f.close
但是,当我读取文件 A 时,我最终得到 44383 个浮点数,而不是在 mylist 中得到 44388 个浮点数,当我读取文件 B 时得到 44378 个浮点数,当我读取文件 C 时得到 44388 个浮点数。唯一的区别是文件名中的最后一个字母和数字都是来自我实验室测试结果的浮点数。
我不知道问题是来自正则表达式还是其他任何地方。
谁能帮我解决这个问题?非常感谢!
【问题讨论】:
-
这听起来像是您的数据有问题,可能正则表达式失败并给出了不可预测的结果。
-
不带小数点的浮点数?
-
嗨,蒂姆,谢谢您的评论。文件中的所有数据都是浮点数,让我感到困惑的是它可以在一个文件中选择所有浮点数,但在另外两个文件中失败。会不会有其他的原因?谢谢!
-
嗨 Mika72 谢谢你能详细说明一下吗?你的意思是我可能会遗漏一些值,比如 10.000?
-
如果它是 some string 后跟浮点数并且 some string 可以是任何东西,这可能是要遵循的路径。但如果是 2 行后跟浮点数,则跳过这些行并拆分后面的内容。