Python3.5內(nèi)置模塊之os模塊、sys模塊、shutil模塊用法實(shí)例分析
本文實(shí)例講述了Python3.5內(nèi)置模塊之os模塊、sys模塊、shutil模塊用法。分享給大家供大家參考,具體如下:
1、os模塊:提供對(duì)操作系統(tǒng)進(jìn)行調(diào)用的接口
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import os print(os.getcwd()) #獲取當(dāng)前的操作目錄,即當(dāng)前Python腳本工作的目錄路徑 #os.chdir("F:\\PythonCode\\day5\\test") #改變當(dāng)前腳本工作目錄,相當(dāng)于shell下的cd os.chdir(r"F:\PythonCode\day5\test") #與上面一句等價(jià)(推薦使用) print(os.getcwd()) print(os.curdir) #返回當(dāng)前目錄 '.' print(os.pardir) #獲取當(dāng)前目錄的父目錄字符串名 '..' os.makedirs(r"F:\a\b\c") #生成多層遞歸目錄 #若目錄為空,則刪除,并遞歸到上一級(jí)目錄,如若也為空,則刪除,依此類(lèi)推 os.removedirs(r"F:\a\b\c") #清理空文件夾 os.mkdir(r"F:\PythonCode\day5\t") #生成單級(jí)目錄,相當(dāng)于shell中mkdir filename os.rmdir(r"F:\PythonCode\day5\t") #刪除單級(jí)空目錄,若目錄不為空,無(wú)法刪除或報(bào)錯(cuò);相當(dāng)于shell中rmdir filename print(os.listdir(r"F:\PythonCode\day5\test")) #列出指定目錄下的所有文件和子目錄,包括隱藏文件,并以列表方式打印 os.remove(r"F:\PythonCode\day5\test\1.py") #刪除一個(gè)文件 os.rename(r"F:\PythonCode\day5\test\1.py",r"F:\PythonCode\day5\test\2.py") #重命名文件/目錄 print(os.stat(r"F:\PythonCode\day5\test")) #獲取文件/目錄信息 print(os.sep) #輸出操作系統(tǒng)特定的路徑分隔符,win下為"\\",Linux下為"/" print(os.linesep) #輸出當(dāng)前平臺(tái)使用的行終止符,win下為"\r\n",Linux下為"\n" print(os.pathsep) #輸出用于分割文件路徑的字符串,win下為";",Linux下為":" print(os.environ) #查看系統(tǒng)的環(huán)境變量 print(os.name) #輸出字符串指示當(dāng)前使用平臺(tái)。win->'nt'; Linux->'posix' print(os.system("dir")) #運(yùn)行shell命令,直接顯示 print(os.path.abspath(r"F:\PythonCode\day5")) #返回path規(guī)范化的絕對(duì)路徑 print(os.path.split(r"F:\PythonCode\day5\test\1.py")) #將path分割成目錄和文件名二元組返回 print(os.path.dirname(r"F:\PythonCode\day5")) #返回path的目錄。其實(shí)就是os.path.split(path)的第一個(gè)元素 print(os.path.basename(r"F:\PythonCode\day5")) #返回path最后的文件名。如何path以/或\結(jié)尾,那么就會(huì)返回空值。 print(os.path.exists(r"F:\PythonCode\day5")) #如果path存在,返回True;如果path不存在,返回False print(os.path.isabs(r"F:\PythonCode\day5")) #如果path是絕對(duì)路徑,返回True print(os.path.isfile(r"F:\PythonCode\day5\p_test.py")) #如果path是一個(gè)存在的文件,返回True,否則返回False print(os.path.isdir(r"F:\PythonCode\day5")) #如果path是一個(gè)存在的目錄,則返回True。否則返回False print(os.path.join(r"F:",r"\PythonCode",r"\day5",r"\day")) #將多個(gè)路徑組合后返回,第一個(gè)絕對(duì)路徑之前的參數(shù)將被忽略 print(os.path.getatime(r"F:\PythonCode\day5")) #返回path所指向的文件或者目錄的最后存取時(shí)間 print(os.path.getmtime(r"F:\PythonCode\day5")) #返回path所指向的文件或者目錄的最后修改時(shí)間
運(yùn)行結(jié)果:
F:\PythonCode\day5 F:\PythonCode\day5\test . .. ['2.py', 'module_test.py', 'test.py'] os.stat_result(st_mode=16895, st_ino=8162774324625191, st_dev=104211, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1506609480, st_mtime=1506609480, st_ctime=1506579769) \ ; environ({'PROCESSOR_LEVEL': '6', 'WINDOWS_TRACING_LOGFILE': 'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log', 'PROCESSOR_ARCHITECTURE': 'x86') nt ������ F �еľ��� ѧϰ�� ������к��� 0001-9713 F:\PythonCode\day5\test ��Ŀ¼ 2017/09/28 22:38 <DIR> . 2017/09/28 22:38 <DIR> .. 2017/09/28 22:37 69 2.py 2017/09/28 14:31 121 module_test.py 2017/09/28 14:35 237 test.py 3 ���ļ� 427 �ֽ� 2 ��Ŀ¼ 14,051,733,504 �����ֽ� 0 F:\PythonCode\day5 ('F:\\PythonCode\\day5\\test', '1.py') F:\PythonCode day5 True True True True F:\day 1506656912.210523 1506656912.210523
2、sys模塊
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import sys print(sys.argv) #命令行參數(shù)List,第一個(gè)元素是程序本身路徑 print(sys.version) #獲取Python解釋程序的版本信息 print(sys.path) #返回模塊的搜索路徑,初始化時(shí)使用PYTHONPATH環(huán)境變量的值 print(sys.platform) #返回操作系統(tǒng)平臺(tái)名稱(chēng) sys.stdout.write('please:') #標(biāo)準(zhǔn)輸出,寫(xiě)入字符串輸出到屏幕 val = sys.stdin.readline()[:-1] #標(biāo)準(zhǔn)輸入 print(val) sys.exit(0) #退出程序,正常退出時(shí)exit(0)
運(yùn)行結(jié)果:
['F:/PythonCode/day5/sys_module.py'] 3.5.2 |Anaconda 4.2.0 (32-bit)| (default, Jul 5 2016, 11:45:57) [MSC v.1900 32 bit (Intel)] ['F:\\PythonCode\\day5', 'F:\\PythonCode', 'C:\\Users\\Administrator\\Anaconda3\\python35.zip', 'C:\\Users\\Administrator\\Anaconda3\\DLLs', 'C:\\Users\\Administrator\\Anaconda3\\lib', 'C:\\Users\\Administrator\\Anaconda3', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\Sphinx-1.4.6-py3.5.egg', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.5.egg'] win32 hello please:hello
3、shutil模塊:高級(jí)的文件、文件夾、壓縮包處理模塊
(1)將文件內(nèi)容拷貝到另一個(gè)文件中,可以部分內(nèi)容——shutil.copyfileobj(fsrc, fdst[, length])
f1 = open("p_test.py",encoding="utf-8") f2 = open("p1.py","w",encoding="utf-8") #將文件p_test.py內(nèi)容拷貝到另一個(gè)文件p1.py中,可以部分內(nèi)容 shutil.copyfileobj(f1,f2)
運(yùn)行結(jié)果:
(2)拷貝文件——shutil.copyfile(src, dst)
import shutil shutil.copyfile("p1.py","p2.py") #拷貝文件
運(yùn)行結(jié)果:
(3)僅拷貝權(quán)限(內(nèi)容、組、用戶均不變)——shutil.copymode(src, dst)
(4)拷貝狀態(tài)的信息,包括:mode bits, atime, mtime, flags——shutil.copystat(src, dst)
(5)拷貝文件和權(quán)限——shutil.copy(src, dst)
(6)拷貝文件和狀態(tài)信息——shutil.copy2(src, dst)
(7)遞歸的去拷貝文件:
shutil.ignore_patterns(*patterns) shutil.copytree(src, dst, symlinks=False, ignore=None)
import shutil shutil.copytree("test","test1") #遞歸的去拷貝文件
運(yùn)行結(jié)果:
(8)遞歸的去刪除文件——shutil.rmtree(path[, ignore_errors[, onerror]])
(9)遞歸的去移動(dòng)文件——shutil.move(src, dst)
(10)創(chuàng)建壓縮包并返回文件路徑,例如:zip、tar——shutil.make_archive(base_name, format,...)
- base_name: 壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時(shí),則保存至當(dāng)前目錄,否則保存至指定路徑,
如:www =>保存至當(dāng)前路徑
如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/ - format: 壓縮包種類(lèi),“zip”, “tar”, “bztar”,“gztar”
- root_dir: 要壓縮的文件夾路徑(默認(rèn)當(dāng)前目錄)
- owner: 用戶,默認(rèn)當(dāng)前用戶
- group: 組,默認(rèn)當(dāng)前組
- logger: 用于記錄日志,通常是logging.Logger對(duì)象
import shutil shutil.make_archive("shutil_archive_test","zip","F:\PythonCode\day5")
運(yùn)行結(jié)果:
總結(jié):shutil 對(duì)壓縮包的處理是調(diào)用 ZipFile 和 TarFile 兩個(gè)模塊來(lái)進(jìn)行的
import zipfile z = zipfile.ZipFile("day5.zip","w") z.write("p1.py") print("===========") z.write("p2.py") z.close()
運(yùn)行結(jié)果:
===========
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python 爬蟲(chóng)百度地圖的信息界面的實(shí)現(xiàn)方法
這篇文章主要介紹了python 爬蟲(chóng)百度地圖的界面的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python?創(chuàng)建或讀取?Excel?文件的操作代碼
Excel是一種常用的電子表格軟件,廣泛應(yīng)用于金融、商業(yè)和教育等領(lǐng)域,本文介紹Python?創(chuàng)建或讀取?Excel?文件的操作代碼,感興趣的朋友一起看看吧2023-09-09Python爬蟲(chóng)之使用BeautifulSoup和Requests抓取網(wǎng)頁(yè)數(shù)據(jù)
這篇文章主要介紹了Python爬蟲(chóng)之使用BeautifulSoup和Requests抓取網(wǎng)頁(yè)數(shù)據(jù),本篇文章將介紹如何使用 Python 編寫(xiě)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng),從網(wǎng)頁(yè)中提取有用的數(shù)據(jù),需要的朋友可以參考下2023-04-04Python+PyQt5實(shí)現(xiàn)開(kāi)發(fā)Memcached客戶端
這篇文章主要介紹了如何使用Python和PyQt5來(lái)制作一個(gè)Memcached客戶端,以便我們可以輕松地與Memcached服務(wù)器進(jìn)行交互,感興趣的小伙伴可以了解一下2023-06-06Pyspark讀取parquet數(shù)據(jù)過(guò)程解析
這篇文章主要介紹了pyspark讀取parquet數(shù)據(jù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python模型集成知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于python模型集成知識(shí)點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)參考下。2021-08-08python中的property及屬性與特性之間的優(yōu)先權(quán)
這篇文章主要介紹了python中的property及屬性與特性之間的優(yōu)先權(quán),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07Pytorch使用MNIST數(shù)據(jù)集實(shí)現(xiàn)基礎(chǔ)GAN和DCGAN詳解
今天小編就為大家分享一篇Pytorch使用MNIST數(shù)據(jù)集實(shí)現(xiàn)基礎(chǔ)GAN和DCGAN詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01使用OpenCV實(shí)現(xiàn)仿射變換—平移功能
這篇文章主要介紹了使用OpenCV實(shí)現(xiàn)仿射變換—平移功能,需要的朋友可以參考下2019-08-08PyCharm利用pydevd-pycharm實(shí)現(xiàn)Python遠(yuǎn)程調(diào)試的詳細(xì)過(guò)程
這篇文章主要介紹了PyCharm利用pydevd-pycharm實(shí)現(xiàn)Python遠(yuǎn)程調(diào)試,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09