第一章 1.13 文件操做

一 . 文件操做

1. 數據的存儲

1).數據存儲

計算機存儲分爲運行內存和硬盤存儲
運行內存是用來存儲程序運行過程當中產生的數據,程序結束,數據銷燬
硬盤存儲的文件則一直存在python

2).經常使用的文件

文本文件: txt, json(先後端), plist(頁面), 數據庫文件
二進制文件: 圖片文件: png, jpg... ;音頻文件: mp3, wav...; exe文件等數據庫

2. 文件操做

文件內容操做基本步驟 : 打開文件 -> 操做文件(讀, 寫) -> 關閉文件json

1) . 打開文件

open(file, mode='r', encoding=None)
open(文件地址, 讀寫方式, 文本編碼方式) - 以指定方式打開指定文件返回文件對象
說明:
file ------> 文件路徑(相對路徑或絕對路徑)
相對路徑: ./ - 表示當前目錄
    ../ - 表示當前目錄的上層目錄
mode ------> 文件打開方式,決定打開文件後的操做權限(讀-r , 寫-w)操做文件的數據類型(文本-t, 二進制-b)
文本文件在讀取的時候能夠用rt, rb,可是二進制文件只能用rb讀取
a - 只寫(a和w的區別就是,a打開文件不會刪除源文件,w會)
>>> a和w打開文件的時候,若文件不存在,會建立新文件
r打開文件時,若文件不存在,報錯
encoding - 文本文件編碼方式,只能用t打開文本文件的時候才能賦值
通常採用'utf-8'的編碼方式編碼,保證同一文件讀和寫的編碼方式同樣後端

2).文件操做

a.讀操做
文件對象.read() - 讀指定文件,返回文件中的內容(全部文件)
文件對象.readline() - 讀指定文件的1行內容(只支持文本文件)
文件對象.close() - 關閉操做好的文件
文件讀完以後,光標會停在最後讀取的位置,再繼續讀取的話接着上次的位置繼續
b.寫操做
文件對象.write(內容) - 將指定的功能寫入到指定的文件中數組

o3 = open(r'../test/詩.txt', 'r', encoding='utf-8')
while True:
    line = o3.readline()
    if not line:
        break
    print(line)



二 . 數據持久化

1. 數據持久化

1).須要持久化的數據要存到文件中
2).須要數據的時候不直接賦值,從文件中讀取數據
3).若數據的值發生改變,則將新數據更新到文件中編碼

# 在程序中用一個變量來記錄當前程序啓動的次數
# count

f = open(r'../test/num.txt', 'r', encoding='utf-8')
count = int(f.read())
print(count)

count += 1
f = open(r'../test/num.txt', 'w', encoding='utf-8')
f.write(str(count))
f.close()

2. 文件域

with open(文件路徑,打開方式,編碼方式) as 文件對象
文件路徑能夠是絕對路徑也能夠是行對路徑
相對路徑中 ./ 表明當前目錄 ; ../ 表明當前目錄的上層目錄,依次類推code

3.容器字符串的轉換:eval

當一個字符串內是一個完整的其餘容器(列表,字典,集合,元組)時,eval(字符串)可將字符串轉換成相應的容器對象

str1 = '[1, 2, 3, 4]'
re1 = eval(str1)
print(re1, type(re1))

str2 = "{'name': 2, 'age': 4}"
re2 = eval(str2)
print(re2, type(re2))



三 . json

json模塊是python中專門用來支持json數據的模塊圖片

1.json

json是一種數據格式,專門用來解決各個計算機語言間數據不能互通的問題內存

1).一個json只有一個數據
2).惟一的這個數據必須是json支持的數據類型

json支持的數據類型:

  • a.數字類型(number) ------> 全部數字,支持科學計數法,直接寫
  • b.字符串(string) ------> 文本數據,只能用雙引號引發來,而且支持轉義字符
    "abc", "sadhuwe", ...
  • c.布爾值(boolean) ------> true/false(直接寫)
  • d.空值 ------> null(直接寫)
  • e.數組(array) ------> [元素1, 元素2, 元素3,...] 元素能夠是json支持的任何數據類型
  • f.字典(dictionary) ------> {key1:value, key2:value, key3:value, ...} key必須是字符串,value能夠是json支持的任何類型

2.json轉python

1).轉換規律

json ------> python
數據 ------> int/float
字符串 ------> 字符串;雙引號可能變爲單引號
布爾 ------> 布爾:True/False
null ------> None
數組 ------> 列表
字典 ------> 字典

2).轉換方法

json.loads(字符串) ------> 將json字符串轉換成python的字符串
注意:要求字符串內的內容必須是json格式的數據

result = json.loads('1')
print(result, type(result))

result = json.loads('[123, "ads", true]')
print(result, type(result))

result = json.loads('{"name": "an", "age": 20}')
print(result, type(result))

3.python轉json

1).轉換規律

python ------> json
int/float ------> 數字
字符串 ------> 字符串;單引號變成雙引號
布爾值 ------> 布爾值;true/false
None ------> null
列表/元組 ------> 數組
字典 ------> 字典

2).方法

json.dumps(數據) ------> 將python數據轉換成json類型的python字符串

result = json.dumps(100)
print([result])

result = json.dumps((10, 'ahs', False))
print(result)
相關文章
相關標籤/搜索