【发布时间】:2014-11-28 02:27:10
【问题描述】:
正在阅读文档 (https://docs.python.org/2/tutorial/inputoutput.html):
为了从文件中读取行,您可以遍历文件对象。这是内存效率高、速度快并且代码简单:
如果您想读取列表中文件的所有行,也可以使用
list(f)或f.readlines()。
所以我试了一下:
with open(file) as f:
dictionary = sorted(list(f))
#debug
print dictionary
结果是:
['anuria\n', 'anus\n', 'anuses\n', 'anvil\n', 'anvils\n', 'anxiety\n',
'anxious\n ', 'any\n', 'anybody\n', 'anyhow\n', 'anymore\n',
'anyone\n', 'anyplace\n', 'any thing\n', 'anytime\n', 'anyway\n',
'anywhere\n', 'anywise\n', 'aorta\n', 'aortae \n', 'aortal\n',
'aortas\n', 'aortic\n', 'aortitis\n', 'aoudad\n', 'aoudads\n',
'apace\n', 'apache\n', 'apaches\n', 'apanage\n', 'apart\n',
'apathies\n', 'apathy'...]
两个问题:
为什么会出现
\n换行符?有没有办法删除它?或者我必须使用
readline()并手动附加?
【问题讨论】:
-
请注意最后一个条目缺少换行符 - 显然 list() 为您提供文件的内容并且文件包含换行符(如果您在记事本样式的应用程序中打开它,您将看到换行符)跨度>
-
我从控制台复制粘贴,所以我可能截断了“最后一个条目”(大约有 50k 字或更多 - 直到完成才让它运行)
-
很公平,但重点仍然存在 -
list()方法为您提供文件的内容 - 它不是“添加”任何内容。 -
@MattCoubrough 我知道你来自哪里。可能我应该说“为什么不去掉 \n”而不是问它为什么在那里。谢谢
标签: python list file python-2.7