模塊
os模塊和shutil模塊主要用於在python中執行一些Linux相關的操作,其中 os.system(command) 可以直接運行Linux命令,如os.system('ls')。
不過,通常這條命令不需要用到。因為shell常用的那些命令在python中通常有對應而且同樣簡潔的寫法。上述命令可用 os.listdir(”/”) 代替

import os import shutil # ls --> listdir os.listdir(”/”) # cp --> copy | copy2 | copytree shutil.copy(src,dest) # 參數src是指源文件的名字,參數dest則是目標文件或者目標目錄的名字。 如果dest是一個目錄名,就會在那個目錄下創建一個相同名字的文件 shutil.copy2(src,dest) # 同上,不過copy2還會復制最后存取時間和最后更新時間 shutil.copytree(src,dst[,symlinks]) # src,dst同上,symlinks是一個布爾值,如果是True的話就創建符號鏈接,用於復制目錄 # mv --> move shutil.move(src,dst) # 移動文件 # cd --> chdir os.chdir(dirname) # dirname為指定目錄 # pwd --> getcwd os.getcwd() # 得到當前環境變量 # chroot --> chroot os.chroot(dirname) # 將dirname作為進程的根目錄 # remove --> remove,remove -r --> rmdir os.remove(path) # 刪除文件,不能用於刪除目錄 os.rmdir(path) # 刪除文件夾 # 更改權限 os.chmod(path,mode) ''' 更改path的權限位。mode可以是以下值(使用or連接)的組合: R代表讀,W代表寫,X代表執行權限。USR 代表用戶,GRP代表組,OTH代表其它 os.S_ISUID os.S_ISGID os.S_ENFMT os.S_ISVTX os.S_IREAD os.S_IWRITE os.S_IEXEC os.S_IRWXU os.S_IRUSR os.S_IWUSR os.S_IXUSR os.S_IRWXG os.S_IRGRP os.S_IWGRP os.S_IXGRP os.S_IRWXO os.S_IROTH os.S_IWOTH os.S_IXOTH ''' # mkdir os.mkdir(path,[mode]) # 創建目錄。mode的意義參見os.chmod(),默認是0777 os.makedirs(path,[mode]) # 同上,不過會先創建不存在的父目錄。

import os # 常用 os.path.join(dirname,basename) # 將目錄名和文件名組合成一個完整的路徑名,比如:os.path.join(”/foo”,”bar.dat”)會返回”/foo/bar.dat”。 os.path.split(path) # 得到(目錄,文件名),比如:os.path.split(”/foo /bar.dat”)會返回(”/foo”,”bar.dat”) os.path.splitext(path) # 把path分離成基本名和擴展名。比如:os.path.splitext(”/foo /bar.tar.bz2″)返回(’/foo/bar.tar’, ‘.bz2′) os.path.exists(path) # 判斷文件或者目錄是否存在 os.path.isfile() # 判斷path所指向的是否是一個普通文件,而不是目錄 os.path.isdir(path) # 判斷path所指向的是否是一個目錄,而不是普通文件 # 其他 os.path.islink(path) # 判斷path所指向的是否是一個符號鏈接 os.path.ismount(path) # 判斷path所指向的是否是一個掛接點(mount point) os.path.getatime(path) # 返回path所指向的文件或者目錄的最后存取時間。 os.path.getmtime(path) # 返回path所指向的文件或者目錄的最后修改時間 os.path.getctime(path) # 返回path所指向的文件的創建時間 os.path.getsize(path) # 返回path所指向的文件的大小 os.path.abspath(path) # 把path轉成絕對路徑 os.path.expanduser(path) # 把path中包含的”~”和”~user”轉換成用戶目錄 os.path.expandvars(path) # 根據環境變量的值替換path中包含的”$name”和”${name}”,比如環境變量 FISH=nothing,那os.path.expandvars(”$FISH/abc”)會返回”nothing/abc” os.path.normpath(path) # 去掉path中包含的”.”和”..”

import os os.chown(path,uid,gid) # 改變文件的屬主。uid和gid為-1的時候不改變原來的屬主。 os.link(src,dst) # 創建硬連接 os.readlink(path) # 得到path這個符號鏈接所指向的路徑 os.symlink(src,dst) # 創建符號鏈接
練習
sys.argv是一個列表,保存了python程序的命令行參數。其中 sys.argv[0]是程序本身的名字。

import sys,os.path,shutil for f in os.listdir(sys.argv[1]): shutil.copy(os.path.join(sys.argv[1],f),sys.argv[2])

import os.path,sys dirname=sys.argv[1] i=10001 for f in os.listdir(dirname): src=os.path.join(dirname,f) if os.path.isdir(src): continue os.rename(src,str(i)) i +=1
參考:https://www.cnblogs.com/momoyan/p/9145742.html