python 基本庫(os粪摘、shutil瀑晒、glob)

來源1:寒風(fēng)
來源2:追逐的博客

一.os包

os包包括各種各樣的函數(shù),以實現(xiàn)操作系統(tǒng)的許多功能徘意。這個包非常龐雜苔悦。
?import os.path
path="/home/User/Document/test.txt"

print(os.path.basename(path)) # 查詢路徑中包含的文件名
print(os.path.dirname(path)) # 查詢路徑中包含的目錄

filename=os.path.basename(path) # 查詢路徑中包含的文件名
extension_name=os.path.splitext(filename) # 查詢文件名稱中的擴展名
示例(單獨示例):


import arcpy.mapping as mapping,os
path = r"C:"
f = open("BrokenDataLinks.txt","w")
for root,dirs,files in os.walk(path):
for filename in files:
basename,extension = os.path.splitext(filename)
if extension = ".mxd":
fullpath = os.path.join(root,filename)
mxd = mapping.MapDocument(fullpath)
f.write("MXD:" + filename + "\n")
brknList = mapping.ListBrokenDataSources(mxd)
for brknItem in brknList:
f.write("\t" + brknItem.name + "\n")
f.close()


path="/home/User/Document/test.txt"
info = os.path.split(path) # 將路徑分割成文件名和目錄兩個部分,放在一個表中返回
print(info[0]) #info[0]返回路徑椎咧,即/home/User/Document玖详,注意最后無/,與os.path.basename(path)返回結(jié)果一模一樣。
print(info[1]) #info[1]返回完成文件名稱勤讽,即test.txt,與os.path.dirname(path)返回結(jié)果一模一樣蟋座。

path2 = os.path.join('/', 'home', 'User', 'Document', 'file1.txt') # 使用目錄名和文件名構(gòu)成一個路徑字符串
print(path2)

p_list = [path, path2]
print(os.path.commonprefix(p_list)) # 查詢多個路徑的共同部

另外還有:
print(os.path.exists(path)) # 查詢文件是否存在
print(os.path.getsize(path)) # 查詢文件大小
print(os.path.getatime(path)) # 查詢文件上一次讀取的時間
print(os.path.getmtime(path)) # 查詢文件上一次修改的時間
print(os.path.isfile(path)) # 路徑是否指向常規(guī)文件
print(os.path.isdir(path)) # 路徑是否指向目錄文件


os包的一些命令就是用于文件管理。
mkdir(path)
創(chuàng)建新目錄脚牍,path為一個字符串向臀,表示新目錄的路徑,它只能一層一層地建目錄诸狭。相當于$mkdir命令券膀。注意:mkdirs(path)相當于mkdir -p /var/zs/zs1/zs2

rmdir(path)
刪除空的目錄,path為一個字符串驯遇,表示想要刪除的目錄的路徑芹彬。相當于$rmdir命令。**補充一點叉庐,前面說的如果目錄不空舒帮,就不能用 os.removedirs() 刪除(removedirs刪除多級空目錄,rmdir刪除一級空目錄)陡叠。但是会前,可以用模塊 shutil 的 rmtree 方法。如:import shutil
shutil.rmtree(path)

listdir(path)
返回目錄中所有文件匾竿。相當于$ls命令瓦宜。
例如:
import os
dir = "E:\testData\spark\spark1.6"
files=os.listdir(dir)
for file in files:
if os.path.isfile(file):
print file
#file僅僅是一個不帶目錄的文件名
f = open(dir + "\" + file,'r')
print f.readlines()
f.close

remove(path)
刪除path指向的文件。

rename(src, dst)
重命名文件岭妖,src和dst為兩個路徑临庇,分別表示重命名之前和之后的路徑。

chmod(path, mode)
改變path指向的文件的權(quán)限昵慌。相當于$chmod命令假夺。

chown(path, uid, gid)
改變path所指向文件的擁有者和擁有組。相當于$chown命令斋攀。

stat(path)
查看path所指向文件的附加信息已卷,相當于$ls -l命令。
示例如下:

指定一個文件

path=r"e:\zs"
pf = path + "/README.md"

此文件的信息

os.stat(pf)

posix.stat_result(st_mode=33279, st_ino=67L, st_dev=26L, st_nlink=1, st_uid=0, st_gid=0, st_size=50L, st_atime=1429580969, st_mtime=1429580969, st_ctime=1429580969)

從結(jié)果中看淳蔼,可能看不出什么來侧蘸,先不用著急裁眯。這樣的結(jié)果是對 computer 姑娘友好的,對讀者可能不友好讳癌。如果用下面的方法穿稳,就友好多了:

fi = os.stat(pf)
mt = fi[8]

fi[8] 就是 st_mtime 的值,它代表最后 modified(修改)文件的時間晌坤》晁遥看結(jié)果:

mt
1429580969

還是不友好。下面就用 time 模塊來友好一下:

import time
time.ctime(mt)
'Tue Apr 21 09:49:29 2015'

現(xiàn)在就對讀者友好了骤菠。

symlink(src, dst)
為文件dst創(chuàng)建軟鏈接它改,src為軟鏈接文件的路徑。相當于$ln -s命令商乎。

getcwd()
查詢當前工作路徑 (cwd, current working directory)央拖,相當于$pwd命令。

os.system() 是在當前進程中執(zhí)行命令截亦,直到它執(zhí)行結(jié)束爬泥。如果需要一個新的進程柬讨,可以使用 os.exec 或者os.execvp崩瓤。另外,os.system() 是通過 shell 執(zhí)行命令踩官,執(zhí)行結(jié)束后將控制權(quán)返回到原來的進程却桶,但是os.exec() 及相關(guān)的函數(shù),則在執(zhí)行后不將控制權(quán)返回到原繼承蔗牡,從而使 Python 失去控制颖系。
system(command) -> exit_status(返回執(zhí)行狀態(tài)碼,0或1)
不管是什么操作系統(tǒng)辩越,只要如下操作就能打開網(wǎng)頁了:
import webbrowser
webbrowser.open("http://www.itdiffer.com")
不必再使用os.system(command)那么繁瑣了嘁扼,需要找瀏覽器路徑。

os.popen(command):返回文件對象黔攒,將命令執(zhí)行結(jié)果組織成文件對象趁啸。類似于linux shell編程中的command或$(command),這兩個命令執(zhí)行后返回的是命令執(zhí)行結(jié)果,而非命令執(zhí)行狀態(tài)碼督惰。
popen(...)
popen(command [, mode='r' [, bufsize]]) -> pipe
Open a pipe to/from a command returning a file object.
for line in os.popen("ls -l /mnt"):
print(line)


二. shutil包

copy(src, dst)
復(fù)制文件不傅,從src到dst。相當于$cp命令赏胚。
move(src, dst)
移動文件访娶,從src到dst。相當于$mv命令觉阅。

比如我們想復(fù)制文件a.txt:
import shutil
shutil.copy( 'a.txt','b.txt')
以上相關(guān)函數(shù)跟Linux系統(tǒng)下shell命令非常相似崖疤,熟悉Linux的人一看就可以明白了秘车。


三.glob包

glob包最常用的方法只有一個, glob.glob()。該方法的功能與Linux中的ls相似戳晌。
接受一個Linux式的文件名格式表達式(filename pattern expression)鲫尊,
列出所有符合該表達式的文件(與正則表達式類似),將所有文件名放在一個表中返回沦偎。
所以glob.glob()是一個查詢目錄下文件的好方法疫向。

該文件名表達式的語法與Python自身的正則表達式不同,對應(yīng)關(guān)系大致如下:

Filename Pattern Expression Python Regular Expression
* .*
? .

[0-9] same

[a-e] same

[^mnp] same

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市豪嚎,隨后出現(xiàn)的幾起案子搔驼,更是在濱河造成了極大的恐慌,老刑警劉巖侈询,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舌涨,死亡現(xiàn)場離奇詭異,居然都是意外死亡扔字,警方通過查閱死者的電腦和手機囊嘉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來革为,“玉大人扭粱,你說我怎么就攤上這事≌痖荩” “怎么了琢蛤?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抛虏。 經(jīng)常有香客問我博其,道長,這世上最難降的妖魔是什么迂猴? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任慕淡,我火速辦了婚禮,結(jié)果婚禮上沸毁,老公的妹妹穿的比我還像新娘峰髓。我一直安慰自己,他們只是感情好以清,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布儿普。 她就那樣靜靜地躺著,像睡著了一般掷倔。 火紅的嫁衣襯著肌膚如雪眉孩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音浪汪,去河邊找鬼巴柿。 笑死,一個胖子當著我的面吹牛死遭,可吹牛的內(nèi)容都是我干的广恢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼呀潭,長吁一口氣:“原來是場噩夢啊……” “哼钉迷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钠署,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤糠聪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谐鼎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舰蟆,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年狸棍,在試婚紗的時候發(fā)現(xiàn)自己被綠了身害。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡草戈,死狀恐怖塌鸯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情猾瘸,我是刑警寧澤界赔,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布丢习,位于F島的核電站牵触,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏咐低。R本人自食惡果不足惜揽思,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望见擦。 院中可真熱鬧钉汗,春花似錦、人聲如沸鲤屡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酒来。三九已至卢未,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辽社。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工伟墙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人滴铅。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓戳葵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親汉匙。 傳聞我的和親對象是個殘疾皇子拱烁,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容