python中目錄的解釋 Python中路徑操作

2021-10-11 19:20:38 字數 4985 閱讀 5981

目錄

1. os.path模組

3.4版本之前使用os.path模組,3.4版本之後建議使用pathlib模組

方法解釋

path.join

拼接乙個路徑出來

path.exists

判斷該路徑是否存在

path.split

將路徑切割成頭和尾的乙個元組

path.abspath

返回乙個絕對路徑

path.dirname

返回『目錄』

path.basename

返回路徑的最後一部分

2. pathlib模組

from pathlib import path

path中返回的是乙個path物件,而os.path中返回的是乙個字串。

2.1 目錄操作

初始化:

>>> p = path() # 當前目錄

>>> p = path(『a『,『b『,『c/d『) # 當前目錄下的a/b/c/d

>>> p = path(『/etc『) # 根下的etc目錄

屬性解釋

parts

返回路徑中的每乙個部分

joinpath

連線多個字串到path物件中

parent

目錄的邏輯父目錄

parents

父目錄序列,索引0是直接的父

name

目錄中的最後一部分

suffix

目錄中的最後一部分的副檔名

stem

目錄的最後乙個部分,沒有字尾

suffixes

返回多個副檔名列表

with_suffix(suffix)

補充副檔名到路徑的尾部,返回新的路徑,副檔名存在則無效

with_name(name)

替換目錄最後乙個部分並返回乙個新的路徑

屬性解釋

cwd()

返回當前工作目錄

home()

返回當前家目錄

is_dir()

是否是目錄

is_file()

是否是普通檔案

is_symlink()

是否是軟鏈結

is_socket()

是否是socket檔案

is_block_device()

是否是塊裝置

is_absolute()

是否是絕對路徑

resolve()

返回乙個新的路徑,該路徑是當前path的絕對路徑,如果是軟連線則被解析

absolute()

獲取絕對路徑,推薦使用resolve()

exists()

目錄或者檔案是否存在

rmdir()

刪除空目錄,沒有提供判斷目錄為空的方法

touch()

建立乙個檔案

as_uri()

將路徑解析成url

mkdir()

建立目錄

判斷目錄:

>>> path.cwd()

posixpath(『/home/yanfa『)

>>> path.home()

posixpath(『/home/yanfa『)

>>> p = path(『/home/yanfa『)

>>> p

posixpath(『/home/yanfa『)

>>> p.is_dir()

true

>>> p.is_file()

false

>>> p.is_absolute()

true

建立目錄:

>>> p = path()

>>> p /= 『a/b/c/d『

>>> p.exists()

false

>>> p.mkdir() # filenotfounderror

traceback (most recent call last):

file "", line 1, in

file "/usr/local/python3.6/lib/python3.6/pathlib.py", line 1248, in mkdir

self._accessor.mkdir(self, mode)

return strfunc(str(pathobj), *args)

filenotfounderror: [errno 2] no such file or directory: 『a/b/c/d『

>>> p.mkdir(parents=true)

>>> p.exists()

true

萬用字元匹配:

glob(pattern) 匹配給定的模式

rglob(pattern) 匹配給定的模式,遞迴目錄,返回乙個生成器

match(pattern) 模式匹配,成功返回true

>>> p = path()

>>> list(p.glob(『h*『))

[posixpath(『h『), posixpath(『hello『)]

>>> list(p.glob(『**/*.py『))

[posixpath(『pass_py.py『)]

>>> g = p.rglob(『*.py『)

>>> next(g)

posixpath(『pass_py.py『)

>>> next(g)

traceback (most recent call last):

file "", line 1, in

stopiteration

>>> p = path(『a/b/c/d『)

>>> p = path(『a/b/c/ddd.py『)

>>> p.match(『d*.py『)

true

>>> p.match(『c/d*.py『)

true

>>> p.match(『b/*/d*.py『)

true

檢視檔案或者目錄屬性資訊

stat() 如同linux裡面的stat命令

lstst() 同stat(),但是如果是符號鏈結,就顯示鏈結本身的資訊

2.2 檔案操作

open(mode=『r『, buffering=-1, encoding=none, errors=none, newline=none如何內建的open,返回乙個檔案物件。

read_bytes() 以『rb『讀取路徑中對應的檔案,並返回二進位製流。

read_text() 以『rt『讀取路徑中對應的檔案,並返回文字。

write_bytes(date) 以『wb』方式寫入資料到路徑對應檔案。

write_text(data) 以『wt』方式寫入資料到路徑對應的檔案。

>>> from pathlib import path

>>> p = path(『hello『)

>>> p.write_text(『hello python『)

>>> p.read_text()

『hello python『

>>> with p.open() as f:

... print(f.read())

hello python

3. shutil模組

3.1 os模組

os.name 返回作業系統

os.uname() 顯示當前作業系統的詳細資訊

sys.platform 返回當前作業系統

os.listdir() 返回目錄內容的列表

os.stat() 如何stat

os.chmod() 修改檔案的許可權

os.chown() 改變檔案的屬主,屬組

3.2 shutil模組

shutil模組提供了對檔案的高階操作,特別是針對檔案的複製和移動。

copyfileobj(fsrc, fdst[, length]) 檔案物件的複製,複製內容。

copyfile(src, dst, *, follow_symlinks=true) 複製檔案內容,不含元資料

copymode() 僅僅複製許可權

copystat() 複製元資料,stat包含許可權

copy() 複製檔案內容、許可權和部分元資料,不包括建立時間和修改時間

rmtree() 遞迴刪除,同rm -rf一樣

move(src,dst,copy_function=copy2) 遞迴移動檔案,目錄到目錄路徑。

linux中目錄的解釋

根目錄 bin 系統啟動和執行所需的二進位制檔案,linux核心 boot boot grub grub.conf,用來配置啟動載入順序。dev 該目錄包含了所有系統層面的配置檔案,也包含了一系列的shell指令碼 etc 包含一堆配置的檔案 etc crontab 定義了自動化任務執行的時間 et...

linux的目錄解釋

zz bin bin是binary 二進位制 的縮寫。這個目錄是對unix系統習慣的沿襲,存放著使用者最經常使用的命令。例如 cp,ls,cat。boot 這裡存放的是啟動linux時使用的一些核心檔案。dev dev是device 裝置 的縮寫。這個目錄下是所有linux的外部裝置,其功能類似do...

yii的目錄的解釋

以下是專案的目錄 assets 方便模組化 專案下的css樣式最好放在此目錄下 css css樣式 專案下的最好放在此目錄下 images 最為重要mvc都要寫在此目錄下 protected 專案的 寫在這裡 以下是protected的目錄 config下的main.php是配置資料庫的密碼 con...