Python基礎(chǔ)筆記-07

55.os模塊中關(guān)于文件/目錄常用的函數(shù)使用方法

getcwd()返回當(dāng)前工作目錄

>>> import os

>>> os.getcwd()

'D:\\python\\3.5.1'

chdir(path)改變工作目錄

>>> os.chdir('C:\\')

>>> os.getcwd()

'C:\\'

listdir(path='.')列舉指定目錄中的文件名('.'表示當(dāng)前目錄挟伙,'..'表示上一級(jí)目錄)

>>> os.listdir('.')

['$360Section', '$Recycle.Bin', '360SANDBOX', 'Boot', 'bootmgr', 'BOOTNXT', 'BOOTSECT.BAK', 'Config.Msi', 'Documents and Settings', 'hiberfil.sys', 'Intel', 'MSOCache', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Recovery', 'swapfile.sys', 'System Volume Information', 'Users', 'Windows', '學(xué)習(xí)暫存']

mkdir(path)創(chuàng)建單層目錄,如該目錄已存在拋出異常

1)創(chuàng)建一個(gè)文件夾

>>> os.mkdir('D:\\A')

>>> os.getcwd()

'C:\\'

>>> os.chdir('D:\\')

>>> os.listdir('.')

['$RECYCLE.BIN', '360', '360Downloads', 'A', 'AppStore', 'Axcure', 'BaiduNetdiskDownload', 'DTLFolder', 'Firefox', 'kuaiya', 'Movie', 'mysql', 'pagefile.sys', 'python', 'QQ', 'record.txt', 'SMSTSLog', 'System Volume Information', 'test.txt', 'visualstudiocode', 'weixin', 'WinRAR', '下載', '堅(jiān)果云', '射手播放器', '微云', '曹津', '百度云盤(pán)', '迅雷', '迅雷下載']

2)創(chuàng)建復(fù)合文件夾(夫文件夾已經(jīng)存在)

>>> os.mkdir('D:\\A\\B')

>>> os.listdir('.')

['$RECYCLE.BIN', '360', '360Downloads', 'A', 'AppStore', 'Axcure', 'BaiduNetdiskDownload', 'DTLFolder', 'Firefox', 'kuaiya', 'Movie', 'mysql', 'pagefile.sys', 'python', 'QQ', 'record.txt', 'SMSTSLog', 'System Volume Information', 'test.txt', 'visualstudiocode', 'weixin', 'WinRAR', '下載', '堅(jiān)果云', '射手播放器', '微云', '曹津', '百度云盤(pán)', '迅雷', '迅雷下載']

>>> os.chdir('D:\\A')

>>> os.getcwd()

'D:\\A'

>>> os.listdir('.')

['B']

makedirs(path)遞歸創(chuàng)建多層目錄,如該目錄已存在拋出異常,注意:‘E:\\a\\b'和'E:\\a\\c'并不會(huì)沖突

>>> os.makedirs('D:\\a\\b\\c')

>>> os.getcwd()

'D:\\A'

>>> os.listdir()

['B']

>>> os.chdir('D:\\')

>>> os.listdir()

['$RECYCLE.BIN', '360', '360Downloads', 'A', 'AppStore', 'Axcure', 'BaiduNetdiskDownload', 'DTLFolder', 'Firefox', 'kuaiya', 'Movie', 'mysql', 'pagefile.sys', 'python', 'QQ', 'record.txt', 'SMSTSLog', 'System Volume Information', 'test.txt', 'visualstudiocode', 'weixin', 'WinRAR', '下載', '堅(jiān)果云', '射手播放器', '微云', '曹津', '百度云盤(pán)', '迅雷', '迅雷下載']

>>> os.chdir('D:\\a')

>>> os.listdir()

['B']

>>> os.chdir('D:\\a\\B')

>>> os.listdir()

['c']

>>>

remove(path)刪除文件

>>> os.remove('D:\\a\\B\\c\\hhh.txt')

rmdir(path)刪除單層目錄,如該目錄非空則拋出異常

>>> os.rmdir('D:\\a\\B\\c')

Traceback (most recent call last):

?File "", line 1, in

???os.rmdir('D:\\a\\B\\c')

OSError: [WinError 145] 目錄不是空的五垮。: 'D:\\a\\B\\c'

>>>

removedirs(path)遞歸刪除目錄,從子目錄到父目錄逐層嘗試刪除,遇到目錄非空則拋出異常

>>> os.getcwd()

'D:\\a\\B'

>>> os.chdir('D:\\')

>>> os.removedirs('D:\\A\\B\\c')

>>> os.listdir('.')

['$RECYCLE.BIN', '360', '360Downloads', 'AppStore', 'Axcure', 'BaiduNetdiskDownload', 'DTLFolder', 'Firefox', 'kuaiya', 'Movie', 'mysql', 'pagefile.sys', 'python', 'QQ', 'record.txt', 'SMSTSLog', 'System Volume Information', 'test.txt', 'visualstudiocode', 'weixin', 'WinRAR', '下載', '堅(jiān)果云', '射手播放器', '微云', '曹津', '百度云盤(pán)', '迅雷', '迅雷下載']

rename(old,new)將文件old重命名為new

>>> os.getcwd()

'D:\\a\\B'

>>> os.chdir('D:\\')

>>> os.removedirs('D:\\A\\B\\c')

>>> os.listdir('.')

['$RECYCLE.BIN', '360', '360Downloads', 'AppStore', 'Axcure', 'BaiduNetdiskDownload', 'DTLFolder', 'Firefox', 'kuaiya', 'Movie', 'mysql', 'pagefile.sys', 'python', 'QQ', 'record.txt', 'SMSTSLog', 'System Volume Information', 'test.txt', 'visualstudiocode', 'weixin', 'WinRAR', '下載', '堅(jiān)果云', '射手播放器', '微云', '曹津', '百度云盤(pán)', '迅雷', '迅雷下載']

>>> os.rename('test.txt','hahah.txt')

>>> os.listdir('.')

['$RECYCLE.BIN', '360', '360Downloads', 'AppStore', 'Axcure', 'BaiduNetdiskDownload', 'DTLFolder', 'Firefox', 'hahah.txt', 'kuaiya', 'Movie', 'mysql', 'pagefile.sys', 'python', 'QQ', 'record.txt', 'SMSTSLog', 'System Volume Information', 'visualstudiocode', 'weixin', 'WinRAR', '下載', '堅(jiān)果云', '射手播放器', '微云', '曹津', '百度云盤(pán)', '迅雷', '迅雷下載']

>>>

system(command)運(yùn)行系統(tǒng)的shell命令

>>> os.system('cmd')

walk(top)

*以下支持路徑操作中常用倒的一些定義崎场,支持所有平臺(tái)

os.curdir指代當(dāng)前目錄('.')

>>> os.curdir

'.'

>>> os.listdir(os.curdir)#利用這個(gè)方式可以規(guī)避不同系統(tǒng)中不是用一個(gè)點(diǎn)來(lái)表示本目錄

['$RECYCLE.BIN', '360', '360Downloads', 'AppStore', 'Axcure', 'BaiduNetdiskDownload', 'DTLFolder', 'Firefox', 'hahah.txt', 'kuaiya', 'Movie', 'mysql', 'pagefile.sys', 'python', 'QQ', 'record.txt', 'SMSTSLog', 'System Volume Information', 'visualstudiocode', 'weixin', 'WinRAR', '下載', '堅(jiān)果云', '射手播放器', '微云', '曹津', '百度云盤(pán)', '迅雷', '迅雷下載']

os.pardir指代上一級(jí)目錄('..')

os.sep輸出操作系統(tǒng)特定的路徑分隔符(win下為'\\',linux下為'/')

os.linesep當(dāng)前平臺(tái)使用的行終止符(win下為'\r\n',linux下為'\n')

os.name指代當(dāng)前使用的操作系統(tǒng)(包括:posix遂蛀、nt谭跨、mac、os2李滴、ce螃宙、java)

2)os.path模塊中關(guān)于路徑常用的函數(shù)使用方法

basename(path)去掉目錄路徑,單獨(dú)返回文件名

>>> os.path.basename('D:\\a\\b\\c\\yangfei.txt')

'yangfei.txt'

dirname(path)去掉文件名所坯,單獨(dú)返回目錄路徑

>>> os.path.dirname('D:\\a\\b\\c\\yangfei.txt')

'D:\\a\\b\\c'

join(path1[,path1[,....]])將path1谆扎,path2各部分組合成一個(gè)路徑名

>>> os.path.join('A','B','C')

'A\\B\\C'

>>> os.path.join('D:\\','A','B','C')#join不會(huì)真的去建立文件夾

'D:\\A\\B\\C'

>>> os.getcwd()

'D:\\'

>>> os.chdir('D:\\A')

Traceback (most recent call last):

?File "", line 1, in

???os.chdir('D:\\A')

FileNotFoundError: [WinError 2] 系統(tǒng)找不到指定的文件。: 'D:\\A'

split(path)分割文件名與路徑芹助,返回(f_path,f_name)元組堂湖,如果完全使用目錄闲先,它會(huì)將最后一個(gè)目錄作為文件名分離,且不會(huì)判斷文件或目錄是否存在

>>> os.path.split('E:\\A\\sexy.avi')

('E:\\A', 'sexy.avi')

>>> os.path.split('E:\\A\\B')

('E:\\A', 'B')

splitext(path)分離文件名與擴(kuò)展名无蜂,返回(f_name,f_extension)元組

>>> os.path.splitext('E:\\a\\sexy.avi')

('E:\\a\\sexy', '.avi')

getsize(file)返回指定文件的尺寸伺糠,單位是字節(jié)

>>> os.getcwd()

'D:\\'

>>> os.path.getsize('hahah.txt')

13

getatime(file)返回指定文件最近的訪問(wèn)實(shí)際(浮點(diǎn)型秒數(shù),可用time模塊的gmtime()或者localtime()函數(shù)換算)

getctime(file)返回指定文件的創(chuàng)建時(shí)間(浮點(diǎn)型秒數(shù)酱讶,可用time模塊的gmtime()或者localtime()函數(shù)換算)

getmtime(file)返回指定文件最新的修改時(shí)間(浮點(diǎn)型秒數(shù)退盯,可用time模塊的gmtime()或者localtime()函數(shù)換算)

>>> os.path.getatime('hahah.txt')

1515416742.079957

>>> import time

>>> time.localtime(os.path.getatime('hahah.txt'))

time.struct_time(tm_year=2018, tm_mon=1, tm_mday=8, tm_hour=21, tm_min=5, tm_sec=42, tm_wday=0, tm_yday=8, tm_isdst=0)

*以下為函數(shù)返回True或False

exists(path)判斷指定路徑(目錄或文件)是否存在

>>> os.listdir('.')

['$RECYCLE.BIN', '360', '360Downloads', 'AppStore', 'Axcure', 'BaiduNetdiskDownload', 'DTLFolder', 'Firefox', 'hahah.txt', 'kuaiya', 'Movie', 'mysql', 'pagefile.sys', 'python', 'QQ', 'record.txt', 'SMSTSLog', 'System Volume Information', 'visualstudiocode', 'weixin', 'WinRAR', '下載', '堅(jiān)果云', '射手播放器', '微云', '曹津', '百度云盤(pán)', '迅雷', '迅雷下載']

>>> exists('D:\\360')

Traceback (most recent call last):

?File "", line 1, in

???exists('D:\\360')

NameError: name 'exists' is not defined

>>> os.path.exists('D:\\360')

True

isabs(path)判斷指定路徑是否為絕對(duì)路徑

>>> os.path.isabs('D:\\360')

True

isdir(path)判斷指定路徑是否存在且是一個(gè)目錄

isfile(path)判斷指定路徑是否存在且是一個(gè)文件

islink(path)判斷指定路徑是否存在且是一個(gè)符合鏈接

ismount(path)判斷指定路徑是否存在且是一個(gè)掛載點(diǎn)

samefile(path1,path2)判斷path1和path2兩個(gè)路徑是否指向同一個(gè)文件

>>> os.path.exists('D:\\360')

True

>>> os.path.isabs('D:\\360')

True

>>> os.path.isabs('曹津\\PS4')

False

>>> os.path.isdir('D:\\360')

True

>>> os.path.isfile('D:\\360')

False

>>> os.path.islink('D:\\360')

False

>>> os.path.ismount('D:\360')

False

>>> os.path.ismount('D:\\')

True

56.pickle模塊

1)將文件存放成二進(jìn)制:picking

2)將二進(jìn)制文件讀取成源文件:unpikling

3)將列表寫(xiě)入成二進(jìn)制文件,再將二進(jìn)制文件解壓讀出

>>> import pickle? #引入pickle模塊

>>> my_list=[123,3.14,'xiaojiayu',['another list']]? #定義一個(gè)列表my_list

>>> pickle_file1=open('my_file.plk','wb')? #以wb形式打開(kāi)(沒(méi)的話就新增)文件my_file.plk泻肯,賦給對(duì)象pickle_file1

>>> pickle.dump(my_list,pickle_file1) #利用pickle的dump函數(shù)將my_list的數(shù)據(jù)以二進(jìn)制形式倒入倒pickle_file1中

>>> pickle_file1.close()#關(guān)閉pickle_file1

>>> pickle_file2=open('my_file.plk','rb')#以二進(jìn)制讀出的形式rb打開(kāi)my_file.plk并賦給對(duì)象pickle_file2

>>> pickle.load(pickle_file2)#利用pickle的load函數(shù)將pickle_file2解壓后讀出

[123, 3.14, 'xiaojiayu', ['another list']]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末渊迁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子灶挟,更是在濱河造成了極大的恐慌琉朽,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稚铣,死亡現(xiàn)場(chǎng)離奇詭異箱叁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)惕医,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)耕漱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人抬伺,你說(shuō)我怎么就攤上這事螟够。” “怎么了峡钓?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵妓笙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我能岩,道長(zhǎng)寞宫,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任拉鹃,我火速辦了婚禮辈赋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘膏燕。我一直安慰自己炭庙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布煌寇。 她就那樣靜靜地躺著,像睡著了一般逾雄。 火紅的嫁衣襯著肌膚如雪阀溶。 梳的紋絲不亂的頭發(fā)上腻脏,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音银锻,去河邊找鬼永品。 笑死,一個(gè)胖子當(dāng)著我的面吹牛击纬,可吹牛的內(nèi)容都是我干的鼎姐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼更振,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼炕桨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起肯腕,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤献宫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后实撒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體姊途,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年知态,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捷兰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡负敏,死狀恐怖贡茅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情原在,我是刑警寧澤友扰,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布尘惧,位于F島的核電站改抡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冀膝。R本人自食惡果不足惜浮庐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一甚负、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧审残,春花似錦梭域、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至璧坟,卻和暖如春既穆,著一層夾襖步出監(jiān)牢的瞬間赎懦,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工幻工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留励两,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓囊颅,卻偏偏與公主長(zhǎng)得像当悔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子踢代,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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

  • 2.和操作系統(tǒng)相關(guān)的調(diào)用 系統(tǒng)相關(guān)的信息模塊 import sys sys.argv是一個(gè)list,包含所有的命令...
    周倜吉閱讀 367評(píng)論 0 0
  • pyton review 學(xué)習(xí)指南 https://www.zhihu.com/question/29138020...
    孫小二wuk閱讀 1,053評(píng)論 0 2
  • 常用 提高python編碼效率 賦值 列表推導(dǎo)式 列表解析表達(dá)式,類(lèi)似[i*2 for i in list] 三元...
    今夕何夕_walker閱讀 743評(píng)論 0 1
  • 記錄常用命令: os.name #顯示當(dāng)前使用的平臺(tái) os.sep #當(dāng)前平臺(tái)下路徑分隔符 os.lines...
    merryzhou閱讀 423評(píng)論 0 0
  • 我的家鄉(xiāng)盲憎,地處榕江之南,大尖山下奸鬓,四周青山環(huán)繞焙畔,細(xì)水長(zhǎng)流。一年四季串远,滿山遍野宏多,瓜果飄香,堪稱(chēng)“世外桃源”澡罚。 ...
    小圓點(diǎn)閱讀 365評(píng)論 0 1