常规文件读写和爬虫数据存储
常规文件读写和爬虫数据存储
1.文件读取、写入数据
-
文件读取
-
文件读取很简单,就三步
-
首先,使用open()函数打开文件 myfile = open(r'test.txt','r')
myfile是变量,存放读取的文件,第一个r是固定符号,'test.txt'是需要读取文件的文件名,最后一个‘r’是文件打开模式,‘r’代表read, 意为文件读取。
-
第二步,我们要来读取文件中的内容
myfliecontent=myfile.read() #使用read()函数,读取myfile变量中文件的数据,将数据放在myfilecontent变量中 print(myfilecontent) #使用print()函数,看看读取到什么内容
-
最后一步,关闭文件。
myfile.close() #关闭文件.不能忘记很重要!很重要!很重要!很重要!很重要!
-
完整的代码
myfile = open(r'test.txt','r') myfilecontent = myfile.read() print(myfilecontent) myfile.close()
-
-
文件写入操作
文件写入也是分三步: 打开文件-----写文件------关闭文件
- 方法一
第一步打开文件: myfile=open(r'test.txt','w') #使用open()函数, 除了最后一个参数,其余参数不动, 把最后一个参数换成‘w’,是write意思,意为写入。 第二步,开始写入内容 myfile.write('从你的全世界路过') 第三步,关闭文件 myfile.close()
-
方法二
with open(rtest.txt','a') as myfile: myfile.write('从你的全世界路过')
2.Excel文件读取存储
-
import openpyxl # 引用openpyxl wb = openpyxl.Workbook() # 利用openpyxl.Workbook()函数创建新的workbook(工作薄)对象,就是创建新的空的Excel文件。 sheet = wb.active # wb.active就是获取这个工作薄的活动表,通常就是第一个工作簿,也就是我们在上面的图片中看到的sheet1。 sheet.title = 'kaikeba' # 可以用.title给工作表重命名。现在第一个工作表的名称就会由原来默认的“sheet1”改为"gdp"。 sheet['A1'] = 'gdp' # 向单个单元格写入数据 score1 = ['math', 95] sheet.append(score1) # 写入整行的数据,变量类型是一个列表 wb.save('score.xlsx') # 保存修改的Excel wb.close() # 关闭Excel
-
#实战练习: ''' 根据已给网址爬取果壳前10页标题和对应的网址信息, 并将爬取的数据写入到excel表格或者csv中 网址:https://www.guokr.com/ask/highlight/?page= ''' import requests import openpyxl from bs4 import BeautifulSoup headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36' } wb=openpyxl.Workbook() sheet=wb.active sheet.title='guoke' sheet['A1']='标题' sheet['B1']='网址' for i in range(1,11): res=requests.get('https://www.guokr.com/ask/highlight/?page=%s'%i,headers=headers) soup=BeautifulSoup(res.text,'html.parser') list_info=soup.find_all('ul',class_="ask-list-cp") list_data=list_info[0].find_all('div',class_="ask-list-detials") #print(list_info) for data in list_data: res_data=data.find('a') title=res_data.text #print(title) url=res_data['href'] #print(url) sheet.append([title,url]) wb.save('gouke.xlsx') wb.close()
-
3.csv格式文件读取、存储数据
-
CSV存储(写入)数据(csv.writerow()操作)
方法一: import CSV # 需要写入的数据 score1 = ['math', 95] score2 = ['english', 90] # 打开文件,追加a, newline="",可以删掉行与行之间的空格 file=open("score.csv",'a',newline="") # 设定写入模式 csv_write=csv.writer(flie) # 写入具体内容 csv_write.writerow(score1) csv_write.writerow(score2) flie.close() open("score.csv") #方法二: import CSV score1 = ['math', 95] score2 = ['english', 90] with open('score.csv','a',newline='') as r: #writer是实例化对象,writerow()是写入的方法,括号内的数据是列表形式 writer=csv.write(r) writer.writerow(scroe1) write.writerow(scroe2) print('写入完毕') open('score.csv')
-
CSV数据读取(csv.reader()读取操作)
-
with open("mytest.csv",'r') as file: reader=csv.reader(file) for content in reader: #writerow()方法写入的数据据是列表形式,所以读取的时候应该for循环遍历列表 print(content)
-