如何解决没有\ n是否有任何便捷的方法来读取行?
我有一个名为read_proxy
的函数,我想阅读文本的每一行:
def read_proxy():
f = open('./proxy.txt','r')
proxies = f.readlines()
f.close()
return proxies
if __name__ == '__main__':
proxies = read_proxy()
print(proxies) # ['a\n','sad\n','asdasd\n','asdas\n','1223\n','43\n','4576\n','789\n','90900-\n']
您会看到列表项,每个列表项的末尾都有一个\n
。
如何编写read_proxy()
,让我实现不使用\n
获得每一行字符串?在我的选择中,我只能对每个项目进行循环处理,然后将\n
剥离掉。
解决方法
def read_proxy_without_newlines():
f = open('./proxy.txt','r')
proxies = f.readlines()
f.close()
return [p.rstrip('\n') for p in proxies]
,
您可以尝试使用.readlines()
一次获取整个文件,而不是使用\n
来将每一行分别读入列表并在末尾保留.read()
。然后使用str.split()
将其变成行列表,但是这次删除换行符:
def read_proxy():
f = open('./proxy.txt','r')
proxies = f.read().split('\n')
f.close()
return proxies
,
我不确定为什么Python决定这样做,但是遍历文件会返回其行。所以你也可以这样写:
with open('./proxy.txt','r') as file:
return [line.rstrip('\n') for line in file]
对于非常大的文件,这可能比将整个文件读入内存然后进行解析更为有效。不需要在内存中保存文件的两个副本(一个带有换行符,一个不带换行符)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。