1

これは非常に単純な質問だと思いますが、今まではありませんでした...次のような列を持つファイルがあります。

1 2  3 4  5   3
6 7 -8 9  0   5
4 8 -4 6 -7   8

そして私はPythonでこのコードを持っています:

import csv

MyValues = [] #create an empty list
values = csv.reader(open('myfile', 'rb'), delimiter=' ')
for row in values:
    MyValues.append(row[5] if len(row)>4 else None)
print MyValues

問題は、区切り文字がスペースだけでなく、2つまたは3つのスペースである場合があることです。今まで、スニファーや方言のルーチンを使用しても修正できませんでした...誰かが列をインポートする方法を知っていますか?

4

1 に答える 1

5

csv モジュールを使用する代わりに、str.split()各行で次のように使用します。

MyValues = []
for line in open('myfile'):
    row = line.split()
    MyValues.append(row[5] if len(row)>4 else None)
print MyValues

str.split()デフォルトでは文字列を空白で分割し、連続する空白文字は単一の区切り文字として扱われます。

于 2012-10-29T18:11:39.420 に答える