1

多くの行があるファイルがあります。最初の4行はいくつかの文字(単語)で始まり、残りは数字で始まります。数字で始まる行(3桁の数字、たとえば「123」の後に文字と数字の両方を含むさまざまな変数が続く)を繰り返し処理し、最初の4行を無視します。これは私が行ったことですが、出力に空白のリストが表示されます。

number = []  
for line in infile.readline():  
    line = line.rstrip()  
    if line.startswith('[0-9]'):
        number.append(line.split()[0])  
print number

出力で「番号」リストが空になるのはなぜですか?

infileは次のようになります。

Value = 152  
Numb = 0.005  
Pos = 75  
Samp = 12.5  
150    K    0.345  
234    T    0.764  
565    X    0.345 
4

2 に答える 2

5

startswith正規表現ではなく文字列を受け取るためです。あなたが欲しいre.match

編集:またはimport string; line.startswith(tuple(string.digits))(@GarethReesに感謝)

于 2012-12-03T16:17:24.817 に答える
1

直接的な答えではありませんが、行をスキップする最も簡単な方法は次のとおりです。

from itertools import islice
with open('file') as fin:
    for line in islice(fin, 4, None):
        pass # do something
于 2012-12-03T16:23:13.113 に答える