-3

次のような .txt があります。

"uc007ayl.1"  "ENSMUSG00000041439"

"uc009mkn.1"  "ENSMUSG00000031708"

私のコードは次のとおりです。

f = open("my dir"/"file name.txt", 'r')
r = f.readlines()

私はそれが次のようなものを示している読み取りを印刷します:

'uc007ayl.1\tENSMUSG00000041439\ruc009mkn.1\tENSMUSG00000031708\ruc009mkn.1\tENSMUSG00000035491\ruc007aft.1\tENSMUSG00000025907\r etc.'

コードを使用してリストの長さを確認しました:

listlength = len(r)

私のファイルには3000行あるはずですが、長さ1で返されます。何が問題ですか?

4

2 に答える 2

0

私は通常 python 3 を使用していますが、これについてはお手伝いできると思います。コードとその結果を見るとreadlines、ファイル内のすべてのデータが単純に返されているように見えます。私は次のことを行います(ファイルの内容が string であると仮定しますfc):

tlist=fc.split("\n")
dat=[]
for(s in tlist):
    dat.append(s.split("\"))

リスト式を使用しますが、2.7 で機能するかどうかは正直わかりません。

于 2012-07-30T22:05:24.177 に答える
0

各行を個別のリスト項目にしたい場合:

with open(r"filename.txt", "r") as f:
    mylist = [line for line in f]

各「名前」を個別のリスト項目にしたいと仮定します。

with open(r"filename.txt", "r") as f:
    mylist = [name for name in line.split("\t") for line in f]

[編集]

印刷されているものに基づいて、これを試してみてください。

with open(r"filename.txt", "r") as f:
    mylist = f.read().split("\r")

ファイルの各行が\r文字で区切られているように見えますが、これは少し珍しいことです。その場合、ファイルをその文字で手動で分割し、それが機能するかどうかを確認します。

于 2012-07-30T22:06:42.333 に答える