-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)

它返回的长度为 1,而我的文件中应该有 3000 行。问题是什么?

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 回答