读取文档

1、纯文本

from urllib.request import urlopen
text = urlopen("http://www.pythonscraping.com/pages/warandpeace/chapter1.txt")
print(text.read())
#但是要注意文本编码,常见ASCII,UNICODE和ISO编码,其中常见的是UTF-8,但是也有少数是ISO,在HTML页面网站会在<head>部分显示编码格式(charset)

2、将字符串转换为utf-8格式

from urllib.request import urlopen
text = urlopen("http://www.pythonscraping.com/pages/warandpeace/chapter1-ru.txt")
print(str(text.read(),"utf-8"))

3、CSV文件最好是从网上直接把文件读成一个字符串,然后转为一个StringIO文件,使它具有文件的属性,这样就不必占有本地内存了

from urllib.request import urlopen
from io import StringIO
import csv

data = urlopen("http://pythonscraping.com/files/MontypythonAlbums.csv").read().decode("ascii","ignore")
datefile = StringIO(data)
csvreader = csv.reader(datefile)

for row in csvreader:
    print(row)

对于以上代码,有时候会对输出的结果的第一行进行删除,可以使用以下代码

from urllib.request import urlopen
from io import StringIO
import csv

data = urlopen("http://pythonscraping.com/files/MontypythonAlbums.csv").read().decode("ascii","ignore")
datefile = StringIO(data)
dictreader = csv.DictReader(datefile)#这个函数会把CSV文件每一行转换成字典对象返回,而不是列表对象

print(dictreader.fieldnames)

for row in dictreader:
    print(row)

 

posted on 2018-02-02 22:08  告辞  阅读(142)  评论(0)    收藏  举报

导航