1

テキストファイルを読み取り、最後の列に特定の値を持つ行のみを出力するために、Pythonでいくつかの簡単なコードを実行しようとしています。

これはテキストファイルです:

234 324 4
124 35 5
13 434 7
34 465 1
41 46 2 
25 62 2

そして私の試みたコードは

data = np.loadtxt('SelectValueTest.txt')

line = range (0,5)
for line in data:
    for n in data[:,2]:
        if n ==1:
            print line 

print lineこれは、いずれかの行に value が含まれている場合にすべての行を出力するだけなので、ビットを変更する必要があることはわかっています1が、何を入れればよいかわかりません。

初歩的な質問ですみません!始めたばかりで、コツをつかむのに苦労しています!

4

3 に答える 3

3

各行をスペースで分割し、取得したリストの最後の要素が必要な値と等しいかどうかを確認します: -

with open('SelectValueTest.txt', 'rb') as data:
    for line in data:
        if line.strip().split(" ")[-1] == '1':
             print line 
于 2012-11-21T12:07:00.150 に答える
2
with open('SelectValueTest.txt', 'rb') as f:
    for line in f:
        if line.strip().endswith('1'):
            print line

これにより、1 で終わるすべての行が出力されます。行末の改行などを削除するには、strip() が必要です。これは、あなたが私たちに示したデータで動作します。ただし、行末に 2 桁以上の値がある場合は、Rohit の方法を使用する必要があります。

マイク

于 2012-11-21T12:07:06.397 に答える
0

つまり、どこにでも 1 を含む行を印刷しているということです。

より良い解決策は、次のように cvs リーダーで読むことです:

with open(file, 'rb') as csvfile:
    data= csv.reader(csvfile, delimiter=' ')
    for line in data:
        if line[-1] ==1:
            print line 
于 2012-11-21T12:05:16.570 に答える