python 学习笔记(十二) 文件和序列化
生活随笔
收集整理的這篇文章主要介紹了
python 学习笔记(十二) 文件和序列化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python 文件讀寫和序列化學習。
## python文件讀寫
`1 打開并且讀取文件`
`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 寫字符串`
`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 jsonclass Student(object): def __init__(self, name, age, score): self.name = name self.age = age self.score = scoredef convertFunc(std): return {'name':std.name, 'age':std.age, 'score':std.score}s = Student('Bob', 20, 88) print(json.dumps(s,default=convertFunc)) print(json.dumps(s,default=lambda obj:obj.__dict__))
`5 反序列化`
def revert(std): return Student(std['name'], std['age'], std['score'])json_str = '{"age": 20, "score": 88, "name": "Bob"}' print(json.loads(json_str, object_hook=revert ) )我的微信公眾號
?
轉載于:https://www.cnblogs.com/secondtonone1/p/7833798.html
總結
以上是生活随笔為你收集整理的python 学习笔记(十二) 文件和序列化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于splice()方法,slice()
- 下一篇: Python 类的特殊成员方法详解