Python如何阅读复杂的列表?

时间:2012-07-30 21:56:37

标签: python python-2.7

我的.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行。有什么问题?

2 个答案:

答案 0 :(得分:0)

我通常使用python 3,但我想我可以帮助你: 查看代码及其结果,readlines似乎只返回文件中的所有数据。我将执行以下操作(假设文件内容为字符串fc):

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

我使用列表表达式,但老实说我不知道​​它们是否在2.7中工作。

答案 1 :(得分: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字符描绘的,这有点不寻常。在这种情况下,我会尝试按该角色手动分割文件,看看是否有效。