【发布时间】:2013-05-21 08:54:51
【问题描述】:
我需要读取一个文件并将其分成几行,并用制表符将这些行分成两半,以及去掉所有的语音标记。目前我有一个工作功能。但是,它相当慢:
temp = []
fp = open(fName, "r")
for line in fp:
temp.append(line.replace("\"","").rstrip("\n").split("\t"))
print temp
这会将文件拆分为列表列表。它实际上可能只是一个列表,因为只要保留顺序,以后就可以很容易地将其重新分成几对。
必须有更快的方法来做到这一点。谁能让我走上正轨?
谢谢!
[编辑] 我正在使用的文件很大,但我会添加类似的内容。 (有没有办法在堆栈溢出时上传文件?)
"CARMILLA" "35"
"JONATHAN R" "AA2"
"M" "3"
"EMMA" "350"
"OLD" "AA"
应该返回:
["CARMILLA", "35", "JONATHON R", "AA2", "M", "3", "EMMA", "350", "OLD", "AA"]
虽然我的代码将它作为 2 个字符串的列表返回,但这也很好。
抱歉,我可能应该注意到 print 语句代表 return 语句 - 因为我把它从一个函数中取出,所以我把它改成了 print,所以在这里更有意义。
【问题讨论】:
-
一个示例文件和输出将帮助我们创建答案(用于测试)
-
当然,我会添加一个。
-
如果你想要的只是一个打印输出,你可以在你的 for 循环中打印而不是附加到列表中。
-
您在寻找csv吗?但我不确定性能。
-
您基于什么假设阅读和拆分“相当慢”?你是怎么测量的?