0

この質問は非常に単純ですが、何時間もたっていません。タブで区切られた 2 つの列のデータを含むデータファイルを取得しました。それらをpythonで読み込んで処理したい。allDataデータが含まれていますが、その一部にアクセスするにはどうすればよいですか?

with open( "file.txt", "r" ) as mergeData:
    allData = mergeData.read()

print allData
4

4 に答える 4

2

短くて簡単:

with open( "file.txt", "r" ) as mergeData:
     allData = [line.strip().split('\t') for line in mergeData]

csv@TimPietzcker が言及したモジュールは素晴らしいですが、ユニコードを処理しません。

于 2013-09-27T20:23:58.927 に答える
-1

このcsvモジュールは、区切られたデータ フィールドのファイルを読み取るのに適しています。以下は、リストのリストを作成します。各リストには、データ ファイルの対応する列から読み取られたデータが含まれます。また、任意の数のデータ列に簡単に適応させることもできます。

import csv

NUM_COLS = 2
columns = [[] for _ in range(NUM_COLS)]
with open("datafile.txt", "rb") as infile:
    for row in csv.reader(infile, delimiter="\t"):
        for i, col in enumerate(row):
            columns[i].append(col)

for col in columns:
    print col

タブ区切りの入力ファイルの例:

1   5
2   6
3   7
4   8

生成される出力:

['1', '2', '3', '4']
['5', '6', '7', '8']
于 2013-09-27T21:19:22.810 に答える
-2

なぜだめですか:

fp = open("file.txt","r")
mylist = fp.readlines()   # get list of lines.
fp.close()  # i forgot that line [EDIT]
for i in range(len(mylist)):
    mylist[i] = mylist[i].strip()   #get rid of ' ' and '\n' and such
    mylist[i] = mylist[i].split('separator') # splits line into list of elements in the line

mylist は、行と各行の単一要素の 2D 配列/リストである必要があります。セパレーターは、行要素を区切る文字または文字列と交換する必要があります。

于 2013-09-27T20:23:38.950 に答える