def extractTemp():
inputFile = open('P2text.txt','r+')
line = inputFile.readline()
for chr in line:
if chr.isdigit():
print(chr)
inputFile.close()
extractTemp()
文本文件中包含数字95
,但打印为:
9
5
我猜测是因为它在每个字符上进行迭代并使95
两个单独的字符。
所以我的问题是,如何将它们结合起来。或者,我该怎么做才能让这个程序运行得更好?
Bc在找到合并数字的解决方案时遇到了一个大漏洞,当有两个单独的数字如95和90时会发生什么。
如果我把所有东西连在一起,那将会变成9590。那么我该怎么做才能使这项工作成功呢?
基本上,如果在文本文件中给出一个句子,并且说出"我的数字是95和90"我希望能够打印这两个整数而忽略其余的整数。但是我这样做的方式,它会在不同的行上打印9,5,9,0。
所以我只是想知道如何将它们一起打印,因为95是95而不是9,5而90是90而不是9,0。因此,我想从阅读该句子的最终结果是:>> 95 90运行程序之后或者,如果我只能得到一个句子"我的号码为95"并打印:>> 95我也很满意
答案 0 :(得分:1)
如果您希望输入如下:
这是95,有90
并希望输出:
95
90
你应该使用正则表达式。
import re
with open('path/to/file.txt') as inf:
text = inf.read() # generally bad practice, but...
numbers = re.findall(r"\d+", text) # ['95', '90']
for number in numbers:
print(number)
但是既然你似乎是一个新的程序员,我也不会指望你进入正则表达式的狂野世界。他们非常强大,但最终没必要。你可以这样做:
with open('path/to/file.txt') as inf:
text = inf.read()
chars = [ch for ch in text if ch.isspace() or ch.isdigit()]
# [' ', ' ', '9', '5', ' ', ' ', ' ', ' ', '9', '0']
# every space and every digit
chars = ''.join(chars)
# " 95 90"
# join every element with the empty string
numbers = chars.strip().split()
# ['95', '90']
# strip off leading and trailing whitespace, then split on groups of whitespace
for number in numbers:
print(number) # as before
答案 1 :(得分:0)
试试这个:
toString
答案 2 :(得分:0)
你应该使用split()函数,如下所示:
inputFile=open('test.txt','r')
line=inputFile.readline().split()
for num in line:
try:
print int(num)
except:
pass
inputFile.close()
,结果将是:
90 95
答案 3 :(得分:-1)
您可以列出该行中的数字并进行打印。
def extract_temp(n):
temp=[]
line=n.readline()
for ch in line:
if ch.isdigit():
temp.append(ch)
print("".join(temp))