os ,shutil,send2trash模組彙總(tcy)

tcy23456發表於2019-06-08

os-作業系統介面    2019/6/8

------------------------------------------------------------------------------

本文彙總os模組的常用 操作,包括os.path。

對於檔案的高階操作參考shutil模組:https://mp.csdn.net/postedit/91346064

os模組:提供對目錄或檔案新建/刪除/檢視操作,對檔案及目錄的路徑操作        
shutil:高階的 檔案、資料夾、壓縮包 處理模組        
        提供複製、移動、改名和刪除檔案 及 打包 壓縮 解壓
send2trash模組安全刪除
        將資料夾和檔案傳送到計算機的垃圾箱或回收站
序號分類名稱含義
1常量os.sep路徑分隔符'\\'
2常量os.altsep分隔符'/'
3常量os.curdir檔案路徑分隔符'.'
4常量os.extsep副檔名之間分隔的符'.'
5常量os.devnullnull裝置的路徑'nul'
6常量os.linesep行終止符'\r\n'Windows。文字寫用'\n'
7常量os.defpath  exec函式族如沒制定PATH環境變數,預設查詢os.defpath值作為子程式PATH的值
8常量os.pardir父目錄常量字串'..'
9常量os.pathsep路徑分隔符分號';'
10環境變數os.environ dict包含環境變數 (修改) 
11環境變數os.environ["path"] 得到環境變數path的值     
12環境變數os.getenv(varname[,value])返回環境變數varname的值,os.getenv('path')如無返回value或None
13環境變數os.putenv(varname, value)設定環境變數os.putenv('PATH','/A/AA) 新增;不對os.environ產生影響應通過os.environ設定
14其他os.cpu_count() 
15其他os.ctermid()返回當前程式的控制終端
16其他os.strerror(code)返回錯誤碼code對應的錯誤資訊,當錯誤資訊未知時,丟擲一個ValueError異常。
17其他os.umask(mask)設定當前程式的許可權掩碼,並且返回設定前的許可權掩碼。
18其他os.uname()返回5元組當前作業系統資訊,該5元組包括:(sysname, nodename, release, version, machine)
19其他os.urandom(2)返回一串適合加密用途的大小隨機位元組#b'\xa4"'
20屬性os.name‘系統平臺windows 'nt'
21屬性os.path 模組獲取檔案的屬性資訊。
22檔案和目錄os.access(path, mode)判斷檔案是否可讀寫os.access("/tmp/foo.txt", os.R_OK)
23檔案和目錄os.chdir(path)改變當前工作目錄;相當於CD命令; os.chdir('d:\\outlook')  
24檔案和目錄os.chflags(path, flags)設定路徑的標記為數字標記。os.chflags( path, stat.SF_NOUNLINK )
25檔案和目錄 # 為檔案設定標記,使得它不能被重新命名和刪除
26檔案和目錄os.chmod(path, mode)修改路徑的許可權os.chmod(path, stat.S_IWOTH)# 設定檔案可以被其他使用者寫入
27檔案和目錄os.chown(path, uid, gid)設定檔案的使用者id和組id;unix
28檔案和目錄os.chroot(path)改變當前程式的根目錄unix
29檔案和目錄os.fchdir(fd)通過檔案描述符改變當前工作目錄Unix 
30檔案和目錄os.getcwd() 得到當前目錄;'C:\\Users\\Administrator'     
31檔案和目錄os.getlogin() 得到使用者登入名稱 'Administrator'    
32檔案和目錄os.lchflags(path, flags)設定路徑的標記為數字標記,類似 chflags(),但是沒有軟連結unix
33檔案和目錄os.lchmod(path, mode)修改連線檔案許可權unix
34檔案和目錄os.lchown(path, uid, gid)更修改檔案的uid和gid,類似 chown,但是不追蹤連結。Unix
35檔案和目錄os.link(src, dst)建立硬連結即拷貝,dst = "/tmp/foo.txt";os.link( path, dst)
36檔案和目錄os.listdir(path)返回path資料夾包含的檔案或資料夾列表os.listdir( r'C:\Users\Administrator' )
37檔案和目錄 for file in dirs:print (file)# 輸出所有檔案和資料夾
38檔案和目錄os.lstat(path)像stat()返回檔案資訊,如path是符號連結只處理該符號連結,原始檔。;fstat的別名
39檔案和目錄os.major(device)從原始裝置號中提取裝置major號碼 (用stat中st_dev或st_rdev field)
40檔案和目錄 info = os.lstat(path);major_dnum = os.major(info.st_dev);#0
41檔案和目錄 minor_dnum = os.minor(info.st_dev)#103
42檔案和目錄os.makedev(major, minor)以major和minor裝置號組成一個原始裝置號os.makedev(major_dnum, minor_dnum)#103
43檔案和目錄os.makedirs(path[, mode])遞迴資料夾建立像mkdir();如子目錄存在或無法建立拋OSError
44檔案和目錄 path = "/tmp/home/monthly/daily";os.makedirs( path, 0o777 );
45檔案和目錄os.minor(device)從原始的裝置號中提取裝置minor號碼 (使用stat中的st_dev或者st_rdev field )
46檔案和目錄os.mkdir(path[, mode])建立目錄;可指定mode許可權(和系統umask掩碼進行運算)如目錄存在FileExistsError引發
47檔案和目錄 path = "/tmp/home/monthly/daily/hourly";os.mkdir( path, 0755 )
48檔案和目錄os.mkfifo(path[, mode])建立命名管道,mode 為數字,預設為 0666 (八進位制)
49檔案和目錄 path = "/tmp/hourly";os.mkfifo( path, 0644 )# 建立目錄賦予許可權
50檔案和目錄os.mknod(filename[, mode=0600, device])建立一個名為filename檔案系統節點(檔案,裝置特別檔案或者命名pipe)。
51檔案和目錄 filename = '/tmp/tmpfile';mode = 0600|stat.S_IRUSR;os.mknod(filename, mode)
52檔案和目錄os.pathconf(path, name)返回相關檔案的系統配置資訊。Unix
53檔案和目錄os.popen(command[, mode[, bufsize]])從一個 command 開啟一個管道os.popen('mkdir nwdir','r', 1)
54檔案和目錄os.readlink(path)返回軟連結所指向的檔案的路徑;Unix
55檔案和目錄os.remove(file)刪除檔案。如是目錄丟擲OSError;os.remove("aa.txt");os.listdir(os.getcwd())
56檔案和目錄os.removedirs(path)遞迴刪除目錄,可刪除非空目錄;os.removedirs("/test")
57檔案和目錄os.rename(src, dst)重新命名檔案或目錄,若dst是目錄或存在 則引發異常os.rename('/A/AA/a','/A/AA/b')
58檔案和目錄os.renames(old, new)遞迴對目錄或檔案更名;注意刪除許可權問題os.renames("aa1.txt","newdir/aanew.txt")
59檔案和目錄os.rmdir(path)刪除空目錄,如非空丟擲OSError; os.rmdir("mydir")
60檔案和目錄os.scandir(path=None)返回給定路徑的DirEntry物件的迭代器。
61檔案和目錄os.stat(path)獲取path指定的路徑的資訊os.stat('/home/sy/Python3//01.py)
62檔案和目錄os.statvfs_result(self, /, *args, **kwargs)獲取指定路徑的檔案系統統計資訊
63檔案和目錄os.symlink(src, dst)建立一個軟連結src = '/usr/bin/python';dst = '/tmp/python';os.symlink(src, dst)
64檔案和目錄os.unlink(path)刪除檔案路徑同remove()
65檔案和目錄os.utime(path, times=None)設定路徑的訪問和修改時間。times是(atime, mtime)設定檔案訪問和修改時間
66檔案和目錄os.walk(top, topdown=True, οnerrοr=None, followlinks=False)目錄樹生成器。輸出在目錄中的檔名資料夾
67檔案和目錄shutil.rmtree(path)刪除整個目錄樹
68檔案描述符os.close(fd)關閉檔案描述符 fd fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT );;os.close( fd )
69檔案描述符os.closerange(fd_low, fd_high)關閉所有檔案描述符[fd_low ,fd_high), 錯誤會忽略os.closerange( fd, fd)
70檔案描述符os.dup(fd)複製檔案描述符 fd;d_fd = os.dup( fd )  os.write(d_fd, "This is test".encode())
71檔案描述符os.dup2(fd, fd2)將一個檔案描述符 fd 複製到另一個 fd2;fd=open('txt','a'); os.dup2(f.fileno(), 1)
72檔案描述符  # 將這個檔案描述符代表的檔案傳遞給1描述符指向檔案也就是 stdout
73檔案描述符os.fchmod(fd, mode)改變檔案訪問許可權,檔案由引數fd指定,mode是Unix下的檔案訪問許可權
74檔案描述符os.fchown(fd, uid, gid)修改檔案所有權,修改檔案的使用者ID和使用者組ID檔案由檔案描述符fd指定Unix
75檔案描述符os.fdatasync(fd)強制將檔案寫入磁碟,檔案由fd指定,不強制更新檔案的狀態資訊Unix
76檔案描述符os.fdopen(fd, "w+")通過檔案描述符 fd 建立檔案物件#fo = os.fdopen(fd, "w+")
77檔案描述符os.fpathconf(fd, name)返回開啟檔案系統配置資訊。Unix
78檔案描述符os.fstat(fd)返回檔案描述符fd的狀態像stat()。
79檔案描述符os.fstatvfs(fd)返回包含檔案描述符fd的檔案的檔案系統的資訊類似 statvfs(),Unix
80檔案描述符os.fsync(fd)強制將檔案描述符為fd的檔案寫入硬碟。os.write(fd, "This is test");
81檔案描述符 fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT );os.write(fd, "This is test");os.fsync(fd)
82檔案描述符os.ftruncate(fd, length)裁剪檔案fd對應的檔案, 最大不能超過檔案大小。os.ftruncate(fd, 10)
83檔案描述符os.isatty(fd)檢查一個檔案描述符fd指示的檔案是否是一個tty字元裝置檔案 #False。
84檔案描述符os.lseek(fd, pos, how)設定檔案描述符 fd當前位置為pos, how= 0 ,1,2設定從檔案開始,當前,尾部計算pos; 
85檔案描述符os.open(file, flags[, mode])開啟一個檔案fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
86檔案描述符os.pipe()建立一個管道. 返回一對檔案描述符(r, w) 分別為讀和寫r, w = os.pipe() 
87檔案描述符os.read(fd, n)從檔案描述符 fd 中讀取最多 n 個位元組fd = os.open("f1.txt",os.O_RDWR);ret = os.read(fd,12)
88檔案描述符os.truncate(fd, length)將由path指定的檔案截斷為特定長度
89檔案描述符os.write(fd, str)寫字串到檔案描述符 fd中. 返回實際寫入的字串長度
90程式os._exit(n)退出狀態為n程式不清理,重新整理stdio緩衝區等;用在fork之後子程式;正常退出用sys.exit(n)
91程式os.getegid()返回當前程式的有效使用者組ID
92程式os.geteuid()返回當前程式的有效使用者ID
93程式os.getuid()返回當前程式的使用者ID
94程式os.getgid()返回當前程式的使用者組ID
95程式os.getgroups()返回由當前程式附加的組ID編號組成的列表
96程式os.getresgid()返回(rgid, egid, sgid)當前程式實際使用者組ID,有效的使用者組ID和儲存的使用者組ID
97程式os.setegid(egid)設定當前程式的有效使用者組ID
98程式os.seteuid(euid)設定當前程式的有效使用者ID
99程式os.setgroups(groups)設定當前程式有關附加組ID,groups(int序列型別),只對超級使用者有效
100程式os.setpgid(pid, pgrp)設定程式的使用者組ID如果程式的ID為pid,所在用程式組ID為pgrp。
101程式os.setregid(rgid, egid)設定當前程式的有效使用者組ID和實際使用者組ID
102程式os.setresgid(rgid,egid,sgid)設定當前程式的實際組ID,有效組ID和儲存的使用者組ID。
103程式os.setresuid(ruid,euid,suid)設定當前程式的實際使用者ID,有效使用者ID和儲存的使用者組ID。
104程式os.setreuid(ruid, euid)設定當前程式的實際使用者ID和有效使用者ID
105程式os.getpgid(pid)返回程式ID為pid的程式的組ID,如果pid=0,則返回當前呼叫程式的程式組ID
106程式os.getpgrp()返回當前程式的程式組ID
107程式os.getppid()返回當前程式的父程式的ID
108程式os.getsid(pid)返回程式ID為pid的程式所在的會話的會話ID
109程式os.setsid()設定當前程式的會話ID
110程式os.setuid(uid)設定當前程式的使用者ID
111程式os.abort()向呼叫該函式的程式傳送一個SIGABRT訊號,在Unix系統上預設的行為是產生一個core檔案
112程式os.execl(path, arg0, arg1, ...)執行一個新程式,用新程式替換當前子程式的程式空間,該子程式從新程式的main函式開始執行
113程式os.execle(path, arg0, arg1, ..., env)Unix下新程式程式id是原來被替換的子程式的程式id。
114程式os.execlp(file, arg0, arg1, ...)原來子程式中開啟的所有描述符預設都是可用的,不會被關閉
115程式os.execlpe(file, arg0, arg1, ..., env)execv*系列的函式表示其接受的引數是以一個list或者是一個tuple表示的參數列
116程式os.execv(path, args)execl*系列的函式表示其接受的引數是一個個獨立的引數傳遞進去的。
117程式os.execve(path, args, env)exec*p*系列函式表示在執行引數傳遞過去的命令時使用PATH環境變數來查詢命令
118程式os.execvp(file, args)exec*e系列函式表示在執行命令時讀取該引數指定的環境變數作為預設的環境配置,
119程式os.execvpe(file, args, env)          最後的env引數必須是一個mapping物件,可以是一個dict型別的物件。
   os.execv('/bin/echo', ['foo', 'bar'])#bar foo執行一個新程式取代當前程式
   os.execl('/usr/bin','argc任意','test.py','test.py的引數,...')
120程式os.fork()fork出一個子程式,在子程式中返回0,在父程式中返回子程式ID,如果發生錯誤,則丟擲OSError異常
121程式os.nice(increment)增加increment到程式的nice值,返回一個新的nice值。
122程式os.wait()等待任何一個子程式結束,返回一個tuple,包括子程式的程式ID和退出狀態資訊
123程式os.wait3(options)和waitpid()類似,不需指定pid,返回3元組,包括結束子程式程式id,退出狀態及資源使用資訊
124程式os.waitpid(pid,options)等待完成給定的過程 引數2:os.WNOHANG - 如沒有子程式退出不阻塞waitpid()呼叫
125程式 os.WCONTINUED - 如子程式從stop狀態變為繼續執行,則返回程式自前一次報告以來的資訊。
126程式 os.WUNTRACED - 如果子程式被停止過而且其狀態資訊還沒有報告過,則報告子程式的資訊。
128程式os.getpid()返回當前程式ID #12100
129程式os.kill(pid,sig )將訊號sig傳送到程式pid。模組中定義了h os t平臺上可用的特定訊號的常量signal。
130程式os.spawnl(模式,路徑,... )在新程式中執行程式路徑。
131程式os.spawnle(模式,路徑,...,env )在新程式中執行程式路徑。
132程式os.spawnlp(模式,檔案,... )在新程式中執行程式路徑。os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')
133程式os.spawnlpe(模式,檔案,...,env )在新程式中執行程式路徑。
134程式os.spawnv(模式,路徑,args )在新程式中執行程式路徑。
135程式os.spawnve(mode,path,args,env )在新程式中執行程式路徑。
136程式os.spawnvp(模式,檔案,args )在新程式中執行程式路徑。
137程式os.spawnvpe(模式,檔案,args,env )在新程式中執行程式路徑。os.spawnvpe(os.P_WAIT, 'cp', ['cp', 'index.html', '/dev/null'], os.environ)
138程式os.startfile(路徑[,操作] )使用其關聯的應用程式啟動檔案。
139程式os.system(cmd) 執行shell命令;os.system('ls -al')#獲取隱藏檔案
140程式os.times()返回當前的全域性程式時間。os.times() #nt.times_result(user=7.004444899999999, 
141程式                                system=6.552042, children_user=0.0, children_system=0.0, elapsed=0.0)
142程式1處理system(),wait()和waitpid()返回的狀態資訊:
143程式1os.WCOREDUMP(status)如果一個core檔案被建立,則返回True,否則返回False。
144程式1os.WIFCONTINUED(status)如果一個程式被停止過,並且繼續執行,則返回True,否則返回False。
145程式1os.WIFSTOPPED(status)如果子程式被停止過,則返回True,否則返回False。
146程式1os.WIFSIGNALED(status)如果程式由於訊號而退出,則返回True,否則返回False。
147程式1os.WIFEXITED(status)如果程式是以exit()方式退出的,則返回True,否則返回False。
148程式1os.WEXITSTATUS(status)如WIFEXITED(status)返回True,則返回一整數,該整數是exit()呼叫引數。否則返回值是未定義
149程式1os.WSTOPSIG(status)返回導致程式停止的訊號
150程式1os.WTERMSIG(status)返回導致程式退出的訊號

 

2.os例項

# 例項1: 
os.getcwd()                         # 'C:\\python37'   C:\python37\Lib
os.chdir(r'C:\python36\test_chdir') #修改當前工作目錄成功返回True
os.system('mkdir today')            # Run the command mkdir in the system shell
# ------------------------------------------------------------------------------

# 例項2.1:檢視指定路徑中所有檔案,資料夾
import os
for root, dirs, files in os.walk(r"D:\A"):
    try:
       print('directory < ' + root + ' >')
       for d in dirs:
         print(d)
       for f in files:
         print(f)
    except os.OSError as e:
        print(os.strerror(e.errno))
"""
directory < D:\A >
AA
directory < D:\A\AA >
test.txt
"""
# ------------------------------------------------------------------------------
# 例項2.2:檢視指定路徑中所有檔案,資料夾
for root,dirs,files in os.walk(r"D:\A",topdown=False):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))
"""
D:\A\AA\test.txt
D:\A\AA
"""
# ------------------------------------------------------------------------------
# 例項3.1:標準檔案讀寫
import os
os.makedir('pathdir')     #建立路徑
os.makedirs(r'd:\pathdir')#建立路徑
f = open("text.txt",'w+')#直接開啟一個檔案,如果檔案不存在就建立檔案

f.read([size])          #size為讀取的長度,以byte為單位
f.readline([size])      #讀一行,如果定義了size,有可能返回的只是一行的一部分
f.readlines([size])     #把檔案每一行作為一個list的一個成員,並返回這個list
   # 如果提供size引數,size是表示讀取內容的總長,也就是說可能只讀到檔案的一部分。
f.write(str)            #把str寫到檔案中,write()並不會在str後加上一個換行符
f.writelines(seq)       #把seq的內容全部寫到檔案中(多行一次性寫入)。不會在每行後面加上任何東西。
f.close()               #關閉檔案。
f.flush()               #把緩衝區的內容寫入硬碟

f.fileno()              #返回一個長整型的”檔案標籤“
f.isatty()              #檔案是否是一個終端裝置檔案(unix系統中的)
f.tell()                #返回檔案操作標記的當前位置,以檔案的開頭為原點
f.next()                #返回下一行,並將檔案操作標記位移到下一行。
f.seek(offset[,whence]) #檔案定位到offset位置(whence=0,1,2開頭,當前,末尾為原點進行計算)
    # 如檔案以a或a+的模式開啟,每次進行寫操作時,檔案操作標記會自動返回到檔案末尾。

f.truncate([size])  #把檔案裁成規定的大小,預設的是裁到當前檔案操作標記的位置。
    # 如size比檔案大小還大,可能不改變檔案,也可能用0或隨機內容把檔案補到相應的大小
# ------------------------------------------------------------------------------
例項3.2:檔案描述符讀寫檔案

# fd讀寫標誌:
""" 
os.O_RDONLY 只讀
os.O_WRONLY 只寫
os.O_RDWR   讀寫
os.O_APPEND 附加;寫操作前將檔案指標移動到檔案末尾
os.O_CREAT  建立檔案,寫入檔案存在無效
os.O_EXCL   如檔案存在返回錯誤值。僅適用與_O_CREAT一起使用時

os.O_TRUNC  檔案內容清除
"""
import os
from datetime import datetime as dt

path='D:\\A\\AA\\test.txt'
fd = os.open(path,os.O_RDWR|os.O_APPEND|os.O_CREAT)# 獲取檔案物件
print('fd=',fd)# fd=<_io.TextIOWrapper name='text.txt' mode='w+' encoding='cp936'>

# 寫入字串
str1 = "current time is "+dt.now().strftime("%Y-%m-%d %H:%M:%S")+'\n'
ret = os.write(fd,bytes(str1, 'UTF-8'))#寫入的位數為ret=36

# 讀檔案
os.lseek(fd, 0, 0)     #移動檔案指標到檔案開頭
result=os.read(fd,1000)
print(result.decode())
# 關閉檔案
os.close(fd)

3.備註 退出狀態 

 

NameRemark
os.EX_OK  正常退出
os.EX_USAGE  命令執行不正確,如命令引數錯誤
os.EX_DATAERR  輸入資料有誤
os.EX_NOINPUT  輸入檔案不存在或者不可讀
os.EX_NOUSER  指定的使用者不存在
os.EX_NOHOST  指定的主機id不存在
os.EX_UNAVAILABLE  請求的服務不可用
os.EX_SOFTWARE  內部軟體錯誤
os.EX_OSERR  作業系統錯誤
os.EX_OSFILE  系統檔案不存在
os.EX_CANTCREAT  無法建立指定的輸出檔案
os.EX_IOERR  在進行I/O操作時出錯
os.EX_PROTOCOL  協議切換操作非法,或者協議切換不可用
os.EX_NOPERM  沒有許可權執行該操作
os.EX_CONFIG  配置錯誤
方法說明
 path=r'C:\Users\Administrator\A\AA\test.txt'
ntpath.splitunc(path)把路徑分割為載入點與檔案# ('', 'C:\\Users\\Administrator\\A\\AA\\test.txt')
os.path.abspath(path)相對路徑轉絕對路徑'./boys'#相對
os.path.basename(path)返回檔名 'test.txt'
os.path.commonpath([])返回最長公共子路徑;['/usr/lib', '/usr/local/lib']#'\\usr'格式相同切非空否則異常
os.path.commonprefix([])返回共有最長路徑字首['/usr/lib', '/usr/local/lib']#'/usr/l'
os.path.dirname(path)返回檔案路徑(不含檔名)'C:\\Users\\Administrator\\A\\AA'
os.path.exists(filepath[name])判斷是否存在檔案或目錄#True  如未授os.stat()檔案許可權返回Fasle(即使存在)
os.path.expanduser(path)把path中包含的"~"和"~user"轉換成使用者目錄
os.path.expandvars(path)根據環境變數的值替換path中包含的"$name"和"${name}"
os.path.getatime(path)返回最近訪問時間(浮點型秒數)無則拋異常#1559889034.6349573
os.path.getctime(path)路徑的建立時間;無則拋OSError#1559889034.6349573
os.path.getmtime(path)獲取檔案的修改時間#1559890195.4933546
os.path.getsize(path)返回檔案大小位元組如是目錄返回0,無則拋OSError
os.path.isabs(path)判斷是否為絕對路徑#True
os.path.isdir(path)檢測是否是資料夾#False
os.path.isfile(path)判斷路徑是否為檔案#True
os.path.islink(path)判斷路徑是否為連結#False
os.path.ismount(path)判斷路徑是否為掛載點
os.path.join(path1[, path2[, ...]])目錄檔名合成一個路徑os.path.join('C:\\','A\\','test.txt')#'C:\\A\\test.txt'
os.path.lexists(path)路徑存在則返回True,路徑損壞也返回True#True
os.path.normcase(path)規範化路徑名小寫和反斜槓 #'c:\\users\\administrator\\a\\aa\\test.txt'異常丟擲錯誤
os.path.realpath(path)返回規範路徑,消除路徑中遇到的任何符號連結(如果作業系統支援它們)。
os.path.relpath(path[, start])從start開始計算相對路徑os.path.relpath(path,'C:\\Users\\Administrator')
 'A\\AA\\test.txt'
os.path.samefile(path1, path2)判斷目錄或檔案是否相同
os.path.sameopenfile(fp1, fp2)返回True如果檔案描述符fp1和fp2指向同一檔案
os.path.samestat(stat1, stat2)判斷stat tuple stat1和stat2是否指向同一個檔案
os.path.split(path)分割檔名與目錄 #('C:\\Users\\Administrator\\A\\AA', 'test.txt')
os.path.splitdrive(path)回驅動器名和路徑 #('C:', '\\Users\\Administrator\\A\\AA\\test.txt')
os.path.splitext(path)分離檔名和副檔名 #('C:\\Users\\Administrator\\A\\AA\\test', '.txt')
os.path.supports_unicode_filenames設定是否支援unicode路徑名#True
os.path.walk(path, visit, arg)遍歷path進入每個目錄都呼叫visit(arg, dirname, names),目錄名,所有檔名

相關文章