使用Python在文件中查找字符串并在同一行中提取整数值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Python在文件中查找字符串并在同一行中提取整数值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1377字,纯文字阅读大概需要2分钟。
内容图文
![使用Python在文件中查找字符串并在同一行中提取整数值](/upload/InfoBanner/zyjiaocheng/722/66d6d7cac5ba4dd780d56acc83274241.jpg)
我是python的新手,有以下问题.
我有一个文本文件(filename.dat),它提供有关我的模型的信息.相关部分的摘要如下:
NUMBER OF ELEMENTS IS 1367466
NUMBER OF NODES IS 252624
NUMBER OF NODES DEFINED BY THE USER 248291
NUMBER OF INTERNAL NODES GENERATED BY THE PROGRAM 4333
TOTAL NUMBER OF VARIABLES IN THE MODEL 783873
我可以使用以下python命令搜索该行:
with open('filename.dat', 'r') as inF:
for line in inF:
if 'NUMBER OF ELEMENTS IS' in line:
print "true"
但是我不确定如何在’NUMBER OF ELEMENTS IS’的同一行中提取整数值(1367466).现在有人如何从与字符串字符混合的行中提取字符串数字?
解决方法:
用右边的空格分割线条,一次:
In [18]: line.rsplit(None, 1)
Out[18]: ['TOTAL NUMBER OF VARIABLES IN THE MODEL', '783873']
采取第二部分:
In [19]: line.rsplit(None, 1)[1]
Out[19]: '783873'
将其转换为int:
In [20]: int(line.rsplit(None, 1)[1])
Out[20]: 783873
您可以使用元组解包来使代码更清晰(如果您的整个文件是这种格式):
with open('filename.dat', 'r') as inF:
for line in inF:
label, number = line.rsplit(None, 1)
if 'NUMBER OF ELEMENTS IS' in label:
print "true"
number = int(number)
...
如果某些行具有不同的格式,则必须先搜索并稍后拆分:
with open('filename.dat', 'r') as inF:
for line in inF:
if 'NUMBER OF ELEMENTS IS' in line:
print "true"
label, number = line.rsplit(None, 1) # label is unused then
number = int(number)
...
内容总结
以上是互联网集市为您收集整理的使用Python在文件中查找字符串并在同一行中提取整数值全部内容,希望文章能够帮你解决使用Python在文件中查找字符串并在同一行中提取整数值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。