Python练习忘了第几天
文件与文件系统
1、常用文件操作:
file.read([n]) 将整个文件读入字符串中,或指定n字节
file.readline([n]) 读入文件的一行到字符串中
file.readlines() 将整个文件按行读入到列表中
file.write(s) 向文件中写入字符串
file.writelines(lines) 向文件中写入一行数据列
file.close() 关闭打开的文件
2、fileinput操作文件
fileinput模块提供了一个以行模式循环处理一个或多个文件内容,它实现了对文件中行的懒惰迭代,读取时不需要把文件内容放入内存,提高程序效率
fileinput模块常用函数:
input(): 返回能够用于迭代一个或多个文件中所有行的对象
filename(): 返回当前文件的名称
lineno():返回当前读取行的数量
isfirstline():返回当前行是否文件的第一行
filelineno():返回当前读取行在文件中的行数
#下载网页;request(第三方)
import requests
import re
url = 'https://sjz.58.com/chuzu/?PGTID=0d100000-000f-1ffa-6127-cf515cf7a53e&ClickID=1'
#网页请求
response = requests.get(url)
#编码转换,charset,为解码方式
response.encoding = 'gbk'
html=response.text
#新建存储空间
wenben=111
fb = open('%s.txt'% wenben,'w',encoding='gbk')
#信息获取(姓名,URL,)注意re.s
dl = re.findall(r'<DIV class="clearfix dirconone">.*?</div>',html,re.S)[0]
ti_qu=re.findall(r'href="(.*?)" title="(.*?)">(.*?)</a></li>',dl)
#提取访问,循环每个章节,分别获取信息
for ti in ti_qu:
ti_url,ti_title,ti_wu=ti
#载入
erji = requests.get(ti_url)
erji.encoding = 'gbk'
erji_html = erji.text
#提取二级内容
erji_content = re.findall(r' (.*?)<br />', erji_html, re.S)[0]
#清洗替换
erji_content = erji_content.replace(' ','')
#持久化
fb.write(erji_content)
fb.write('\n')
print(ti_url)