Python基礎刻意練習:文件與文件系統

本系列定位爲複習筆記,某些內容並未提及。
在此記錄一些典型疑問和我在學習中的問題或經常遺忘的細節,也會添加一些覺得有意思的部分(其實就是隨心所欲
內容主要使用代碼進行傳達

文件

1.文件打開

  • open(file, mode='r', buffering=-1, encoding=None, errors=None,newline=None)
  • f = open('哇哈哈開心每一天.txt')用f來表示文件對象。
  • file: 必需,文件路徑(相對或者絕對路徑)。
  • mode: 可選,文件打開模式
  • buffering: 設置緩衝
  • encoding: 一般使用utf8
  • errors: 報錯級別
  • newline: 區分換行符

打開模式是什麼決定了是否能使用write與write方法對應的模式!!
f.write(str)返回的是寫入的字符長度。
f.writelines(sequence)向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符\n。

字符串編碼:

如果文件打開模式帶b,那寫入文件內容時,str(參數)要用encode方法轉爲bytes形式

>>> a='asd'
>>> a.encode()
b'asd'

在這裏插入圖片描述

OS模塊

在這裏插入圖片描述
os.chdir(path)用於改變當前工作目錄到指定的路徑。

>>> import os
>>> os.getcwd()#用於返回當前工作目錄。
'C:\\Users\\雨田人尹\\AppData\\Local\\Programs\\Python\\Python37'

os.rename(src, dst)方法用於命名文件或目錄,從 src 到 dst,如果 dst 是一個存在的目錄, 將拋出 OSError。

import os

print("目錄爲: %s" % os.listdir(os.getcwd()))
os.rename("test", "test2")
print("重命名成功。")
print("目錄爲: %s" % os.listdir(os.getcwd()))

os.system(command)運行系統的shell命令(將字符串轉化成命令)

import os

path = os.getcwd() + '\\a.py'
a = os.system(r'python %s' % path)

os.system('calc')  # 打開計算器

OS.path模塊

主要用於對文件路徑進行字符串操作

在這裏插入圖片描述

pickle模塊的使用

Python 的 pickle 模塊實現了基本的數據的序列化和反序列化

  • 通過 pickle 模塊的序列化操作我們能夠將程序中運行的對象信息保存到文件中去,永久存儲。
  • 通過 pickle 模塊的反序列化操作,我們能夠從文件中創建上一次程序保存的對象。

兩個函數:

pickle.dump(obj, file, [,protocol]) 將obj對象序列化存入已經打開的file中。

  • obj:想要序列化的obj對象。
  • file:文件名稱。
  • protocol:序列化使用的協議。如果該項省略,則默認爲0。如果爲負值或HIGHEST_PROTOCOL,則使用最高的協議版本。

pickle.load(file) 將file中的對象序列化讀出。

  • file:文件名稱。
>>> import os
>>> os.getcwd()
'C:\\Users\\雨田人尹\\AppData\\Local\\Programs\\Python\\Python37'
>>> import pickle
>>> os.chdir(r'C:\\Users\\雨田人尹\\Desktop')
>>> os.getcwd()
'C:\\Users\\雨田人尹\\Desktop'
>>> f=open('test.pickle','wb')
>>> a=['asda',123,124,6,35]
>>> pickle.dump(a,f)
>>> f.close()
>>> g=open('test.pickle','rb')
>>> b=pickle.load(g)
>>> b
['asda', 123, 124, 6, 35]
>>> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章