この質問は非常に単純ですが、何時間もたっていません。タブで区切られた 2 つの列のデータを含むデータファイルを取得しました。それらをpythonで読み込んで処理したい。allData
データが含まれていますが、その一部にアクセスするにはどうすればよいですか?
with open( "file.txt", "r" ) as mergeData:
allData = mergeData.read()
print allData
この質問は非常に単純ですが、何時間もたっていません。タブで区切られた 2 つの列のデータを含むデータファイルを取得しました。それらをpythonで読み込んで処理したい。allData
データが含まれていますが、その一部にアクセスするにはどうすればよいですか?
with open( "file.txt", "r" ) as mergeData:
allData = mergeData.read()
print allData
短くて簡単:
with open( "file.txt", "r" ) as mergeData:
allData = [line.strip().split('\t') for line in mergeData]
csv
@TimPietzcker が言及したモジュールは素晴らしいですが、ユニコードを処理しません。
この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']
なぜだめですか:
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 配列/リストである必要があります。セパレーターは、行要素を区切る文字または文字列と交換する必要があります。