文件操作
- 文件操作介紹
- 打開
- 打開方式
- File對象的屬性
- 文件的讀寫
- File對象的常用方法
- 讀
- 寫
- 定位
- 關閉
- os模塊詳解
- os簡介
- 常用功能
- 關于操作系統
- 關于文件與目錄
- 路徑
- 操作
- json和pickle模塊詳解
- json
- 簡介
- python類型數據和JSON數據格式互相轉換規則
- json to python
- python to json
- 數據類型編解碼
- 序列化及反序列化常用參數
- pickle
- 簡介
- JSON和pickle模塊的區別
文件操作介紹
打開
默認數據是加載到內存中,結果也是保存到內存中, 程序執行結束,所有的數據釋放。
在python,使用open函數,可以打開一個已經存在的文件,或者創建一個新文件。
open(文件名,訪問模式)
eg:
f = open(‘test.txt’, ‘w’)
如果文件不存在那么創建,如果存在那么就先清空,然后寫入數據
打開方式
是否有讀權限 | 是否有寫權限 | 文件不存在,是否會創建文件 | 文件操作會清空文件內容么 | |
---|---|---|---|---|
r | yes | no | no | no |
w | no | yes | yes | yes |
a | no | yes | yes | no |
w+ | yes | yes | yes | yes |
a+ | yes | yes | yes | no |
r+ | yes | yes | no | no |
對于二進制文件:
rb, wb, ab, wb+, ab+, rb+
File對象的屬性
文件的讀寫
File對象的常用方法
讀
read | 讀取指定字節,默認是全部內容 |
readline | 讀取一行內容 |
readlines | 讀取全部內容,返回一個以行為單位的列表 |
寫
write | 從指針所在位置寫入字符串內容 |
writelines | 將列表里的每個元素寫入文件中,自動換行 |
定位
tell | 指針當前位置 |
seek | 移動指針位置 |
seek(offset, from)有2個參數:
offset:偏移量
from:方向 0:表示文件開頭; 1:表示當前位置; 2:表示文件末尾
關閉
方法一:
調用close()方法關閉文件。文件使用完畢后必須關閉,因為文件對象會占用操作系統的資源,并且操作系統同一時間能打開的文件數量也是有限的
方法二:
Python引入了with語句來自動幫我們調用close()方法
python中的with語句使用于對資源進行訪問的場合,保證不管處理過程中是否發生錯誤或者異常都會自動執行規定的(“清理”)操作,釋放被訪問的資源,比如有文件讀寫后自動關閉、線程中鎖的自動獲取和釋放等
eg:
with open('test.txt', 'w') as f: #同 f = open('test.txt', 'w'), with執行結束后
#自動調用f.close()
os模塊詳解
os簡介
os,語義為操作系統,處理操作系統相關的功能,可跨平臺。 比如顯示當前目錄下所有文件/刪除某個文件/獲取文件大小……
常用功能
關于操作系統
關于文件與目錄
路徑
操作
json和pickle模塊詳解
json
簡介
- JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于ECMAScript的一個子集。
- JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C、C++、Java、JavaScript、Perl、Python等)。
- 這些特性使JSON成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成(一般用于提升網絡傳輸速率)。
python類型數據和JSON數據格式互相轉換規則
json to python
json | python |
---|---|
object | dict |
array | list |
string | unicode |
number(int) | int,long |
number(real) | float |
TRUE | True |
FALSE | False |
null | None |
python to json
python | json |
---|---|
dict | object |
list,tuple | array |
str,unicode | string |
int,long,float | number |
True | TRUE |
False | FALSE |
None | null |
注:
python 中str類型到JSON中轉為unicode類型,None轉為null,dict對應object;
pyhton中的集合不能轉成json格式。
數據類型編解碼
dump:將對象序列化并保存到文件
load:將序列化字符串從文件讀取并反序列化
dumps與loads只返回序列化或反序列化的數據,不會操作文件
序列化及反序列化常用參數
- ensure_ascii=False: 中文存儲需要設定
- indent=4: 增加縮進,增強可讀性,但縮進空格會使數據變大
- separators=(’,’,’:’): 自定義分隔符,元素間分隔符為逗號, 字典key和value值的分隔符為冒號
- sort_keys=True: 字典排序
pickle
簡介
python的pickle模塊實現了python的所有數據序列和反序列化。與JSON不同的是pickle不是用于多種語言間的數據傳輸,它僅作為python對象的持久化或者python程序間進行互相傳輸對象的方法,因此它支持了python所有的數據類型。
JSON和pickle模塊的區別
1、JSON只能處理基本數據類型。pickle能處理所有Python的數據類型。
2、JSON用于各種語言之間的字符轉換。pickle用于Python程序對象的持久化或者Python程序間對象網絡傳輸,但不同版本的Python序列化可能還有差異。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
