day-12總結(jié)

文件操作

'''
計(jì)算機(jī)內(nèi)存分為硬盤和運(yùn)行內(nèi)存潭袱。當(dāng)運(yùn)行程序的時(shí)候系統(tǒng)會(huì)自動(dòng)在運(yùn)行內(nèi)存中開辟空間保存程序運(yùn)行過程中
產(chǎn)生的數(shù)據(jù)迫淹;但是當(dāng)程序運(yùn)行結(jié)束的時(shí)候冀值,這個(gè)內(nèi)存空間會(huì)自動(dòng)銷毀伟端,所有數(shù)據(jù)也會(huì)銷毀。如果希望數(shù)據(jù)一直存在
需要將數(shù)據(jù)存儲(chǔ)在硬盤中夹厌。

存儲(chǔ)在本地文件中的數(shù)據(jù)豹爹,就是存儲(chǔ)在硬盤中的數(shù)據(jù),就能持久化矛纹。
編程中常用的文件:txt文件臂聋,二進(jìn)制文件(圖片、視頻、音頻孩等、壓縮文件)艾君、json文件、plist文件肄方、數(shù)據(jù)庫文件(.db,.sqlite)
'''

2.文件操作 - 文件內(nèi)容的操作

'''
1.基本步驟:打開文件 - 讀/寫操作 - 關(guān)閉文件

open(file, model='r', encoding= None) - 打開指定文件冰垄,返回文件對(duì)象
file - 字符串,需要打開的文件路徑权她,可以是絕對(duì)路徑也可以是相對(duì)路徑
絕對(duì)路徑:文件在電腦中的全路徑(很少使用)
相對(duì)路徑:./(當(dāng)前目錄-當(dāng)前py文件所在目錄)播演,可以省略
../(當(dāng)前目錄的上層目錄)

mode - 字符串,文件打開方式伴奥;打開方式?jīng)Q定了打開文件后支持的操作和操作的數(shù)據(jù)的類型
'r': 默認(rèn)值,只讀翼闽;讀出來的數(shù)據(jù)是字符串
'w':只寫拾徙;只能將字符串寫入文件,(先刪除源文件的內(nèi)容再寫)
'rb'/'br':只讀感局;讀出來的數(shù)據(jù)是二進(jìn)制數(shù)據(jù)(bytes)
'wb'/'bw':只寫尼啡;只能將二進(jìn)制數(shù)據(jù)寫入文件,(先刪除源文件的內(nèi)容再寫)
'a': 只寫询微;只能將字符串寫入文件(保留原文件內(nèi)容追加)
'ab'/'ba':只寫崖瞭;只能將二進(jìn)制數(shù)據(jù)寫入文件,(保留原文件內(nèi)容追加)

encoding - 設(shè)置文件內(nèi)容的編碼方式撑毛,固定寫法:'utf-8';只針對(duì)文本文件有效
注意:1)只有文本操作才能設(shè)置編碼方式

          windows默認(rèn)的是'gbk'

2)操作文件
a.讀操作 - 獲取文件中的內(nèi)容
文件對(duì)象.read() - 會(huì)返回文件中的內(nèi)容
文件對(duì)象.readline() - 讀一行內(nèi)容(從讀寫位置讀到一行結(jié)束)

3)關(guān)閉文件
文件對(duì)象.close()
'''

打開文件

f = open('./files/text1.txt', 'r', encoding='utf-8')
獲取文件中的內(nèi)容
對(duì)象.read() - 獲取文件中所有的內(nèi)容

content = f.read()
print(type(content))
print(content)

移動(dòng)讀寫位置(移動(dòng)光標(biāo))
文件對(duì)象.seek(0) - 將讀寫位置移動(dòng)到文件開頭

f.seek(0)
print('====:', f.read())

關(guān)閉文件
f.close()


# 練習(xí):讀文件中的內(nèi)容书聚,一行一行的讀完為止
f = open('./files/text1.txt', 'r', encoding='utf-8')
while True:
    content = f.readline()
    if not content:
        break
    print(content)
f.close()


print('==============寫操作===============')
'''
寫操作:文件對(duì)象.write(內(nèi)容)   -   將指定的內(nèi)容寫入文件中
'''
f = open('./files/text1.txt', 'w', encoding='utf-8')
f.write('abc')
f.close()

二進(jìn)制文件

1.常見的二進(jìn)制文件:圖片文件、視頻文件藻雌、音頻文件雌续、壓縮文件等
'''
不是只有二進(jìn)制文件才支持'b'操作(rb, wb, ab),但是二進(jìn)制文件只能采用'b'操作
注意:所有帶'b'的操作都不能設(shè)置encoding
'''

f = open('./files/text1.txt', 'rb')
content = f.read()
print(type(content))
f.close()

f = open('./files/timg.jpg', 'rb')
content = f.read()
print(content)
f.close()

f = open('./files/ti.jpg', 'wb')
f.write(content)
f.close()
2.文件不存在

'''
如果以讀的方式打開一個(gè)不存在的文件胯杭,程序會(huì)報(bào)錯(cuò)
如果以寫的方式打開一個(gè)不存在的文件驯杜,不會(huì)報(bào)錯(cuò),并且自動(dòng)創(chuàng)建這個(gè)文件
'''

3.打開文件的簡(jiǎn)寫

'''
1)語法
with open(文件路徑做个,讀寫方法鸽心,encoding=編碼方式) as 文件對(duì)象:
文件域(操作文件)

2)說明
以這種方式打開文件,在文件域結(jié)束后居暖,文件會(huì)自動(dòng)關(guān)閉
'''

with open('./files/text1.txt', 'r', encoding='utf-8') as f:
    print(f.read())

json數(shù)據(jù)

import json

1.什么是json數(shù)據(jù) - 滿足json格式的數(shù)據(jù)

'''
1)json格式:
a.一個(gè)json有且只能用一個(gè)數(shù)據(jù)
b.這個(gè)數(shù)據(jù)必須是json支持的數(shù)據(jù)類型對(duì)應(yīng)的數(shù)據(jù)
2)json支持的數(shù)據(jù)類型
a.數(shù)字類型 - 包含所有的數(shù)字顽频,支持科學(xué)記數(shù)法;例如:100膝但,-45,0.67,3e4
b.字符串 - 使用雙引號(hào)引起來的字符集冲九,支持轉(zhuǎn)義字符和編碼字符,例如:"\u4e00abc","123"
c.布爾 - 只有true和false兩個(gè)值(都小寫)
d.數(shù)組 - 相當(dāng)于python中的列表,例如:["abc", 100, true, [1, 2]]
e.字典 - 相當(dāng)于python中的字典莺奸,key只能是字符串丑孩,例如:{"a": 100, "b": "abc", "c":[1, 2]}
f.null - 相當(dāng)于python中的None,表示空
'''

2.json轉(zhuǎn)python

'''
json python
數(shù)字類型 int或者float
字符串 str,字符串灭贷,雙引號(hào)可能會(huì)變單引號(hào)
布爾 bool
數(shù)組 列表(list),["abc", true] -> ['abc', True]
字典 dict
null None

2)方法
json.loads(字符串) - 將json格式的字符串轉(zhuǎn)換成對(duì)應(yīng)的python數(shù)據(jù)
注意:字符串的內(nèi)容必須是json格式的數(shù)據(jù)

'''

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

result = json.loads('"abc"')
print(type(result), result)

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

result = json.loads('[123, "abc", false, null]')
print(type(result), result)

result = json.loads('{"a": 100, "b": "hallo"}')
print(type(result), result)
3.python轉(zhuǎn)json

'''
1)轉(zhuǎn)換關(guān)系
python json
int/float 數(shù)字
str 字符串温学,單引號(hào)變成雙引號(hào)
bool 布爾,True -> true, False -> false
list/tuple 數(shù)組
dict 字典
None null

2)方法
dumps(數(shù)據(jù)) - 將數(shù)據(jù)轉(zhuǎn)換成json格式的字符串

'''

result = json.dumps(100)
print(type(result), result)   #  <class 'str'> '100'

result = json.dumps('abc')
print(type(result), result)    #  <class 'str'> '"abc"'

result = json.dumps([10, True, 'abc', [None, 100]])
print(type(result), result)    # <class 'str'> '[10, true, "abc", [null, 100]]'
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末甚疟,一起剝皮案震驚了整個(gè)濱河市仗岖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌览妖,老刑警劉巖轧拄,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異讽膏,居然都是意外死亡檩电,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門府树,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俐末,“玉大人,你說我怎么就攤上這事奄侠∽矿铮” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵垄潮,是天一觀的道長(zhǎng)烹卒。 經(jīng)常有香客問我,道長(zhǎng)魂挂,這世上最難降的妖魔是什么甫题? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮涂召,結(jié)果婚禮上坠非,老公的妹妹穿的比我還像新娘。我一直安慰自己果正,他們只是感情好炎码,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秋泳,像睡著了一般潦闲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上迫皱,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天歉闰,我揣著相機(jī)與錄音辖众,去河邊找鬼。 笑死和敬,一個(gè)胖子當(dāng)著我的面吹牛凹炸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播昼弟,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼啤它,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了舱痘?” 一聲冷哼從身側(cè)響起变骡,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芭逝,沒想到半個(gè)月后塌碌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旬盯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年誊爹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓢捉。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖办成,靈堂內(nèi)的尸體忽然破棺而出泡态,到底是詐尸還是另有隱情,我是刑警寧澤迂卢,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布某弦,位于F島的核電站,受9級(jí)特大地震影響而克,放射性物質(zhì)發(fā)生泄漏靶壮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一员萍、第九天 我趴在偏房一處隱蔽的房頂上張望腾降。 院中可真熱鬧,春花似錦碎绎、人聲如沸螃壤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奸晴。三九已至,卻和暖如春日麸,著一層夾襖步出監(jiān)牢的瞬間寄啼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留墩划,地道東北人涕刚。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像走诞,于是被迫代替她去往敵國和親副女。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一蚣旱、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,744評(píng)論 0 10
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,182評(píng)論 0 3
  • 生成式 1.什么是生成式生成式就是生成器一種固定寫法 2.寫法a.生成器 = (表達(dá)式 for 變量 in 序列...
    嘩啦噼里啪啦閱讀 124評(píng)論 0 0
  • 基于《Python語言程序設(shè)計(jì)基礎(chǔ)(第2版)》 第一部分 初識(shí)Python語言 第1章 程序設(shè)計(jì)基本方法 1.1 ...
    柄志閱讀 27,371評(píng)論 4 44
  • 今天在家辦完一件大事碑幅,感覺心理很難過,明天就要走了塞绿,孩子很黏我沟涨,真的很怕傷害他,心痛~~
    康淳閱讀 83評(píng)論 0 0