-3

重複の可能性:
Python を使用してテキスト ファイルの行から特定の文字を読み取る方法は?

このような行を含む.txtファイルがあります

水 16:-30.4674 1:-30.4759 17:-30.5373 7:-30.6892 8:-31.128 13:-31.393 2:-31.4036 9:-32.0214 5:-32.4387 12:-32.6972 14:-32.8333.145:-32.8335 :-34.1308 15:-34.9566 11:-38.799 10:-51.471 6:-211.086

水 13:-33.3397 9:-33.511 12:-33.6573 17:-33.7629 5:-33.9539 3:-34.1326 7:-34.3554 15:-34.7484 8:-35.0615 2:-35.4279 11:-37.0637 1. :-38.4928 14:-41.2152 4:-43.3593 10:-80.4689 6:-208.802

あくび 13:-36.4616 9:-37.1025 15:-37.2519 17:-38.8885 8:-39.1585 14:-39.8553 2:-40.2131 12:-41.2615 1:-41.6317 7:-41.8205 3:-41.8205 3:-41.829-3.188 :-46.8158 5:-49.8107 4:-52.5595 10:-70.4841 6:-220.906

私がする必要があるのは、「 :」の前にある数字を配列に格納することです。

反復的な方法またはそれを行う最も簡単な方法は何ですか?

f=open('path','r')
lines=f.readlines()
for line in lines:
   ...

ここから先は、分割と保管の手順がわかりません...助けてください。

4

3 に答える 3

4

フォーマットが常に同じである場合、各行に対してこれを行うことができます:

items = line.split()[1:]
items = [item.split(':')[0] for item in items]

そして、それらを整数として欲しい場合:

items = map(int, items)

それらの保存に関しては、各行を繰り返す前にリストを作成してから、rows = []次のようにアイテムを追加できます。

rows.append(items)

したがって、すべて一緒にすると、次のようになります。

f = open('path','r')
lines = f.readlines()
rows = []

for line in lines:
    items = line.split()[1:]
    items = [item.split(':')[0] for item in items]
    items = map(int, items)
    rows.append(items)

f.close()
print rows
于 2012-06-10T19:32:25.047 に答える
0

これは正規表現の仕事です:

import re

with open(myFilePath, "r") as f:
    text = f.read()
    numbers = re.findall(r"(-?\d+):\S+", text)

上記は、コロンの前のすべての数値が整数であることを前提としています。

于 2012-06-10T19:52:53.680 に答える
-1

split メソッドを使用して配列に追加します。

myArray=line.split(':-')
于 2012-06-10T19:31:22.353 に答える