6-文件/目錄操做

操做文件內容

讀取文件

with open(filepath,'r')as f
     f.read()
  1. 調用read()會一次性讀取文件的所有內容,若是文件有10G,內存就爆了,
  2. 能夠反覆調用read(size)方法,每次最多讀取size個字節的內容。
  3. 調用readline()能夠每次讀取一行內容,
  4. 調用readlines()一次讀取全部內容並按行返回list。所以,要根據須要決定怎麼調用。

寫入文件

with open("test.txt",'w',encoding="utf-8")as f:
    f.writelines(["sfsdfsd",'sdfsdfsdf'])
  1. write 寫入文件內容
  2. whitelines接收一個列表,寫入文件

操做文件

檢查文件權限

os.access("tes1t.txt",os.F_OK) # 返回 True or False

一共有如下屬性:windows

F_OK
R_OK
W_OK
X_OK

分別是 存在,可讀,可寫,可執行函數

刪除文件

os.remove("test.txt")

若是參數是一個目錄路徑的話,會報錯spa

複製文件

須要引入第三方依賴來進行文件複製unix

shutil.copyfile( src, dst)    #從源src複製到dst中去。固然前提是目標地址是具有可寫權限。拋出的異常信息爲IOException. 若是當前的dst已存在的話就會被覆蓋掉

移動文件

shutil.move( src, dst)        移動文件或重命名
os.rename(src,dst)

操做目錄

重命名文件夾

os.rename(path)

建立目錄

os.mkdir(path)

移除目錄

os.rmdir(path)

遍歷目錄

os.walk(top, topdown=True, onerror=None, followlinks=False)

參數的含義:code

參數 定義
top 給定的路徑
topdown 自上而下搜索
onerror 函數,調用須要傳一個參數,OSError實例,出現錯誤後執行
followelinks 經過軟鏈接進行訪問

返回三個值:orm

返回值 意義
dirname 返回文件夾的相對路徑
dirpath 返回的是一個集合,是當前遍歷到的全部文件夾的集合
filenames 返回的也是一個集合,文件名集合

遞歸移除目錄

shutil.rmtree( src )    遞歸刪除一個目錄以及目錄內的全部內容

遞歸建立目錄

os.makedirs(path)

路徑操做

判斷是文件路徑仍是目錄路徑

os.path.isfile(path)
os.path.isdir(path)

判斷路徑是否存在

os.path.exists(path)

當前路徑

os.getcwd()

路徑拼接

爲何須要路徑拼接呢? 由於在 windows 用 來表示路徑,而 *unix 使用 / 來表示路徑遞歸

os.path.join(os.getcwd(),"foler")

分離文件和拓展名

os.path.splitext(path)

絕對路徑

os.pathp.abspath(path)

獲得文件名

os.path.basename(path)

獲得目錄名

os.path.dirname(path)

打包解壓

打包

shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])

例子:ip

# 打包當前目錄
import shutil
shutil.make_archive("test","zip")

解壓縮

shutil.unpack_archive(filename[, extract_dir[, format]])

例子內存

# 解壓文件到 test 文件夾
shutil.unpack_archive("test.zip","test")

其餘

列出目錄下的全部文件和目錄

os.listdir(path)
相關文章
相關標籤/搜索