2016-07-17 12 views
0

私は次のテキストファイルを読むには固執しています - >Extract of the text file I would like to read < - Pythonで。このファイルには、1行に374個の数字と合計201行が含まれています。ただし、ファイルには次のような不都合があります。Pythonで難しいテキストファイルを読む:空白と分割数がない

1)数字は空白やその他の区切り記号で区切られません。

2)各行の最初の数は常に最初の0を持ちません(たとえば、0.15の代わりに.15と書かれています)。

このファイルをPythonで読む方法はありますか?私は、難しいテキストファイル(私は別の人からテキストファイルを受け取り、その人に再度データを保存するように要求することはできません)のような対処する必要はありませんでした。

は、事前にありがとう

2桁の指数で、「科学的表記法」の中の数字のように見える

答えて

0

。あなたのサンプルでは、​​小数点の前にゼロまたは他の数字が決してないように見えます。このようにそれらを読んで試してみてください。

with open("file.txt") as inp: 
    text = inp.read() 
numbers = re.findall(r"[.\d]*?D[+-]\d\d", text) 

あなたはフロートに数文字列を変換したい場合:

values = [ float(n.replace("D", "e")) for n in numbers ] 
+0

おかげで、この作品!また、getfromtxt関数がbumpyの別の解決策を見つけ、デリミタとして数値の長さを指定しました。 –

+0

@GuadalupeCañasこのコードをテストしましたか?それは私にとってはうまくいかない。 (問題は数字の '+ 'にマッチしないということです) – smarx

+0

実際、私は誤って正規表現の" + "を残しました。今すぐ修正されました(ただし、正規表現を行うことができる人は簡単に修正できます)。 – alexis

関連する問題