日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的文件流,初步网页爬虫,序列化和反序列化

發布時間:2025/3/20 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的文件流,初步网页爬虫,序列化和反序列化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、文件流

1. ?open方法是打開文件,方法是:

  open(“文件名”,‘打開方式’,‘緩存’’)

?  參數說明

   “文件名”:包含了你要訪問的文件路徑及文件名稱的字符串值。盡量使用絕對路徑

   ‘打開方式’:默認文件訪問模式為只讀(r)

   ‘緩存’:如果值<0,寄存區的緩沖大小則為系統默認;

      如果值=0,就不會有寄存;

      如果值=1,訪問文件時會緩存行;

      如果值>1的整數,表明了這就是寄存區的緩沖大小;

      該參數是非強制性的。

2.mode文件操作模式

 (1)打開方式

  r--讀 ,w--寫 ,a--追加

  r+可讀可寫   w+:打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。   a+:打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。 ?   rb wb ab 讀寫二進制   (2)對文件作讀寫操作     1、常規的讀操作     (1)read([size])      ?size:讀取的長度,以byte為單位。如果不指定參數,表示一次性讀取全部內容,以字符串形式返回,并且每一行結尾會有一個"\n"符號。 ?     (2)、readline([size])      調一次讀取一行,如果給定了size,有可能返回的只是一行的一部分,以字符串的形式返回,并且結尾會有一個換行符"\n"。      讀完一行,文件操作標記移動到下一行的開頭。返回的是字符串 ?     (3)、readlines([size])       讀取多行,給定了size,可以返回讀取行數的內容。     2、常規的寫操作     (1)、writelines(seq)       seq:把seq(序列)的內容全部寫到文件中(多行一次性寫入)。也不會自動加入換行符。       注意:序列中的內容也必須是字符串類型的數據,才能成功寫入文件。 ?     (2)、write(str)       把str寫到文件中,默認是不加換行符的,所以如果想換行的話,得手動加入換行符'\n'。 ?

    3、讀取文件的位置定位

      (1)、tell()         返回當前操作文件讀取到的位置一個中文:3個字節Windows下‘\r\n’(換行符)占兩個字節,Linux下\n mac下\r.        (2)、seek(x,n) 移動游標到想去的位置          n:,默認是0,起始位置 ? ? 2:從末尾開始計算偏移;1:從當前位置作為標準位置          x:移動的總距離,可以是正數,可以為負數 3、文件輸出方法:   (1)  with open("文件名",'打開方式') as '新名字':        ? ?print('新名字')   (2)   for line in '文件名':        ??print(line) 二、網上爬蟲   實例代碼: response=request.urlopen("https://baike.baidu.com/item/AOP/1332219?fr=aladdin")
fi=open("ccc.py",'w')
page=fi.write(str(response.read()))
fi.close()
  其中需要導入requ的包,用方法urlopen找到網址,然后創建文件用來儲存,
接著用文件的write方法,對獲得的網頁的read方法,并轉為字符串。最后關閉文件。

三、序列化和反序列化
  通過將對象序列化可以將其存儲在變量或者文件中,可以保存當時對象的狀態,實現其生命周期的延長。
并且需要時可以再次將這個對象讀取出來。
用到pickle模塊:
# 序列化
    with open('abc.pkl', 'wb') as f:
      dic = {'age': 23, 'job': 'student'}
      pickle.dump(dic, f)
# 反序列化
    with open('abc.pkl', 'rb') as f:
       aa = pickle.load(f)
       print(aa)
      

總結:即序列化用到dump方法,反序列化用到load方法

轉載于:https://www.cnblogs.com/qianshuixianyu/p/9174285.html

總結

以上是生活随笔為你收集整理的python的文件流,初步网页爬虫,序列化和反序列化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。