私は初心者であり、Pythonを学んでいます。問題は、ファイルから数字を抽出しなければならないことです。数字はどこでもかまいません。同じ行で複数回使用できます。いくつかの行は数字を持たず、いくつかの行は改行かもしれません。私はそれを解決する方法を知っていましたが、これは私のコード正規表現を使用してファイルから数値を抽出し、その和を求める
import re
new=[]
s=0
fhand=open("sampledata.txt")
for line in fhand:
if re.search('^.+',line): #to exclude lines which have nothing
y=re.findall('([0-9]*)',line) #this part is supposed to extract only the
for i in range(len(y)): #the numerical part, but it extracts all the words. why?
try:
y[i]=float(y[i])
except:
y[i]=0
s=s+sum(y)
print s
コードが動作したが、それはそれを行うにはニシキヘビの方法ではありません。 ([0-9] *)が数字だけでなくすべての単語を抽出するのはなぜですか? これを行うにはどうしたらいいですか?
デバッグのヘルプを求める質問(** "なぜこのコードは機能していないのですか?")**は必要な動作、*特定の問題やエラー*、* *を再現するのに必要な*質問自体**。 **明確な問題文**のない質問は他の読者には役に立たない。参照:[最小限で完全で検証可能な例を作成する方法](http://stackoverflow.com/help/mcve) – MattDMo