我想读取一个txt文件并将其存储为字符串列表。这是我自己想出来的一种方式。它看起来很笨拙。有没有更好的方法来做到这一点?感谢。
import re
import urllib2
import re
import numpy as np
url=('http://quant-econ.net/_downloads/graph1.txt')
response= urllib2.urlopen(url)
txt= response.read()
f=open('graph1.txt','w')
f.write(txt)
f.close()
f=open('graph1.txt','r')
nodes=f.readlines()
我尝试了下面提供的解决方案,但它们实际上都返回了与我之前的代码不同的东西。 这是split()
生成的字符串 'node0, node1 0.04, node8 11.11, node14 72.21'
这是我的代码生成的
'node0, node1 0.04, node8 11.11, node14 72.21\n'
问题在于没有' \ n'当我尝试处理字符串列表时,它将面临一些索引错误。 " row = index [0] IndexError:列出索引超出范围"
for node in nodes:
index = re.findall('(?<=node)\w+',node)
index = map(int,index)
row = index[0]
del index[0]
答案 0 :(得分:2)
根据documentation,response
已经是类似文件的对象:您应该能够response.readlines()
。
对于那些你需要创建这样的中间文件的问题,你想使用io.StringIO
答案 1 :(得分:1)
看看split。所以:
nodes = response.read().split("\n")
编辑:或者,如果您想避免使用\r\n
换行符,请使用splitlines。
nodes = response.read().splitlines()
答案 2 :(得分:0)
尝试:
GET
如果您不想要该文件,则应该可以使用:
url=('http://quant-econ.net/_downloads/graph1.txt')
response= urllib2.urlopen(url)
txt= response.read()
with open('graph1.txt','w') as f:
f.write(txt)
nodes=txt.split("\n")