练习
1. 读写所爬取的东方财富股票数据信息(csv文件)
2. 多线程统计文件行数
3. 多进程统计文件行数
4. 多线程检索数据
5. 多线程检索邮箱
6. 多线程保存文件
±+++++++++++++++++++++++++++++++++++++++
1.读写所爬取的东方财富股票数据信息(csv文件)
之前写过爬取并保存东方财富历年股票数据的小爬虫(传送门:爬取东方财富股票信息),保存格式为csv文件,因此学习如何使用python读写csv文件;
read:
import csv
path=r"D:\Python代码\class20\down\20201010\0600010.csv"
reader = csv.reader(open(path,"r")) #读取文件
for item in reader: #读取文件
print(item)
for data in item:
print(data)
write:
import csv
with open("1.csv","w",newline="") as datacsv:
csvw=csv.writer(datacsv,dialect=("excel")) #最常用格式excel格式
csvw.writerow(["1","2","3"])
csvw.writerow(["1","2","3"])
csvw.writerow(["1","2","3"])
2.多线程统计爬取的csv文件行数
import threading
import csv
import os
class MyThreadLine(threading.Thread):
def __init__(self,path):
threading.Thread.__init__(self)
self.path=path
self.line=-1
def run(self):
reader = csv.reader(open(self.path, "r")) # 读取文件
lines=0
for item in reader:
lines+=1
self.line=lines
print(self.getName(),self.line)
'''
#单线程执行
path="D:\\Python代码\\class20\\down\\20201010\\0600010.csv"
mythd=MyThreadLine(path)
mythd.start()
mythd.join()
print(mythd.line)
'''
#多线程并发执行
path="D:\\Python代码\\class20\\down\\20200201"
filelist=os.listdir(path) #存储所有文件名
threadlist=[] #线程列表
for filename in filelist:
newpath=path+"\\"+filename #代表完整路径
mythd=MyThreadLine(newpath) #创建线程类对象
mythd.start() #线程开始干活
threadlist.append(mythd) #增加线程到线程列表
<