python 學習筆記 十二 檔案和序列化

2022-01-23 13:27:07 字數 3534 閱讀 7285

python 檔案讀寫和序列化學習。

## python檔案讀寫

`1 開啟並且讀取檔案`

f = open('openfile.txt','r')

print(f.read())

f.close()

`2 開啟並且讀取一行檔案`

f = open('openfile.txt','r')

print(f.readline())

f.close()

`3 開啟並以二進位制形式讀取檔案`

f = open('./openfile.txt','rb')

print(f.read())

f.close()

`4 開啟並自動關閉檔案`

with open('openfile.txt','r') as f:

print(f.read())

`5 讀取所有行`

f = open('openfile.txt','r')

for line in f.readlines():

print(line.strip())

f.close()

`6 以gbk方式讀取檔案`

f = open('openfiles.txt','r',encoding='gbk' )

print(f.read())

f.close()

`7 以追加方式寫`

with open('openfile.txt', 'a') as f:

f.write('\n')

f.write('hello world!!!')

## python io操作

`1 stringio 寫字串`

from io import stringio

f = stringio()

f.write('hello')

f.write(' ')

f.write('world !')

print(f.getvalue() )

`2 stringio 讀取字串`

from io import stringio

f = stringio("hello\nworld\ngoodbye!!")

while true:

s = f.readline()

if(s==''):

break

print(s.strip())

`3 bytesio 讀寫二進位制字元`

from io import bytesio

f = bytesio()

f.write('中文'.encode('utf-8') )

print(f.getvalue())

from io import bytesio

f = bytesio(b'\xe4\xb8\xad\xe6\x96\x87')

f.read()

## python環境變數和目錄

`1 列印系統的名字和環境變數`

import os

print(os.name)

print(os.environ)

`2 獲取指定key值得環境變數`

print(os.environ.get('path'))
`3 相對路徑轉化絕對路徑`

print(os.path.abspath('.'))
`4 在某個目錄下建立乙個新的目錄`

#首先把新目錄的完整路徑表示出來

print(os.path.join('/users/michael','testdir') )

# 然後建立乙個目錄:

#print(os.mkdir('/users/michael/testdir') )

# 刪掉乙個目錄:

#print(os.rmdir('/users/michael/testdir') )

`5 路徑切割`

print(os.path.split('/path/to/file.txt') )

print(os.path.splitext('/path/to/file.txt') )

`6 檔案重新命名和刪除`

#print(os.rename('test.txt', 'test.py') )

#print(os.remove('test.py'))

`7 列舉當前目錄下所有目錄和py檔案`

print([x for x in os.listdir('.') if os.path.isdir(x) ])

print([x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1] == '.py'])

## python序列化

`1 序列化為二進位制`

import pickle

d = dict(name='bob', age=20, score=88)

print(pickle.dumps(d))

`2 序列化寫入檔案`

f = open('openfile3.txt','wb')

print(pickle.dump(d, f) )

f.close()

`3 反序列化讀取檔案`

f = open('openfile3.txt','rb')

d = pickle.load(f)

f.close()

print(d)

`4 序列化為json`

import json

class student(object):

def __init__(self, name, age, score):

self.name = name

self.age = age

self.score = score

def convertfunc(std):

return

s = student('bob', 20, 88)

print(json.dumps(s,default=convertfunc))

print(json.dumps(s,default=lambda obj:obj.__dict__))

`5 反序列化`

Python學習筆記(十二) 檔案操作

本節主要介紹檔案相關的操作 寫乙個檔案 writefile chen.txt hello python chen mo how are youwriting chen.txttxt open chen.txt 讀取全部內容 allcontent txt.read print allcontent h...

Python學習筆記(十二)

1.語法錯誤和異常錯誤 while true print hello python error message file c programming eclipse project pythonstudy exception.py line 9 while true print hello pyth...

Python學習筆記(十二) Python模組

一 python模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組讓你能夠有邏輯地組織你的 python 段,把相關的 分配到乙個模組裡能讓你的 更好用,更易懂。模組能定義函式,類和變數,模組裡也能包含可執行的 ...