1. 程式人生 > >dict字典和文件操作open

dict字典和文件操作open

進制 內容 Coding readline lines markdown 內存 緩存 移動文件

字典dict

使用key來標註value的數據類型,key和value是一一對應的.在字典中key是唯一的,所以字典也是無序的.

#定義一個字典
dict = {
    ‘name‘ : ‘sylar‘,
    ‘age‘ : 18,
    ‘post‘ : ‘OPS‘,
    ‘salary‘ : 80000
}

###常用操作和方法

#訪問字典的數據,使用定義的key來獲取
print(dict_test[‘name‘])

#修改字典
dict_test[‘name‘] = ‘Sylar‘
print(dict_test[‘name‘])

#copy復制一個字典
#clear刪除所有元素
a = dict_test.copy()
print(a)
print(a.clear())

#fromkyes創建一個新字典,以序列中元素做字典的鍵,val 為字典所有鍵對應的初始值
a = {}
a = a.fromkeys([1,2,3,4,5],‘defalt‘)
print(a)

#get獲取元素值同dict_test[‘name‘]
print(dict_test.get(‘name‘))

#item遍歷所有元素,將元素以鍵值對元組的方式輸出
print(dict_test.items())

#keys遍歷所有元素的value
print(dict_test.keys())

#pop刪除一個元素,並返回元素的value值
print(dict_test.pop(‘age‘))
print(dict_test)

#popitem刪除一個元素,並以元組的形式返回key,value值
print(dict_test.popitem())
print(dict_test)

#setdefault設置一個默認值的元素,如果key已經存在則返回對應的value
print(dict_test.setdefault(‘a‘,100))
print(dict_test)

#update用一個字典的數據去更新另外一個字典的數據
a = {‘name‘:‘tom‘,‘a‘:‘b‘}
dict_test.update(a)
print(dict_test)

#valus遍歷所有元素的value
print(dict_test.values())

遍歷字典的方法
for i in dict_test:
    print(i, dict_test[i])
for i in dict_test.items():
    print(i)
for k,v in dict_test.items():
    print(k, v)

文件操作

對文件的打開讀寫是用open函數,打開文件的方式又分為:
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。

rb 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。

r+ 打開一個文件用於讀寫。文件指針將會放在文件的開頭。

rb+ 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。

w 打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。

wb 以二進制格式打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。

w+ 打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。

wb+ 以二進制格式打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。

a 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。

ab 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。

a+ 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。
ab+ 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。

簡單來說常用的:r+先讀後寫從頭開始覆蓋寫.w+先寫後讀,默認先創建一個空文件默認也只能追加寫在文件最後面(會清空同名文件謹慎使用).a+是追加讀寫模式,一般情況都用這種模式來操作文件.文件插入數據很麻煩,.所以要修改文件,建議讀出一個文件寫到一個新文件裏,數據替換完成後替換原文件

#open函數使用方式,用一個文件句柄的方式去打開一個文件.操作完以後必須關閉文件.
f = open(‘a.txt‘,‘r+‘,encoding=‘utf-8‘)
a = f.read()
f.close()
print(a)

#常用方法

#read讀取整個文件,由於是一次性讀取整個文件只適合對小文件使用.可以指定參數讀取多少個字節
a = f.read(1)
#close關閉文件
#readline每次讀取一行
#readlines讀取整個文件,可以指定參數讀取多少行
#write寫文件
#truncate截斷一個文件,保留多少個字節
#flush手動將內存緩存的數據刷寫到硬盤中,而不是等待程序的緩存控制策略去刷寫數據
#tell返回文件指針的位置
#seek移動文件指針的位置
f = open(‘a.txt‘,‘r‘,encoding=‘utf-8‘)
print(f.readline())
print(f.readline())
print(f.readline())
print(  f.tell())
f.seek(10)
print(  f.tell())
print(f.readline())
f.close()

with open as f

為了更好保護文件,python中提供了with函數來保護對文件的操作.所以我們要進行文件操作一定要使用with函數.在python3中with支持同時操作多個文件

#因為讀取文件是按行讀取所以for line in f:,而不是使用for i in readline:.後一種方法是讀取每一行的字符串的每一個字符
with open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as f,     open(‘b.txt‘,‘w+‘,encoding=‘utf-8‘) as f1:
    for line in f:
        text = line.strip()+‘\n‘
        f1.writelines(text)

dict字典和文件操作open