日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python之sys模块详解_(转)python之os,sys模块详解

發(fā)布時(shí)間:2025/4/16 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python之sys模块详解_(转)python之os,sys模块详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

python之sys模塊詳解

原文:http://www.cnblogs.com/cherishry/p/5725184.html

sys模塊功能多,我們這里介紹一些比較實(shí)用的功能,相信你會(huì)喜歡的,和我一起走進(jìn)python的模塊吧!

sys模塊的常見函數(shù)列表

sys.argv: 實(shí)現(xiàn)從程序外部向程序傳遞參數(shù)。? sys.exit([arg]): 程序中間的退出,arg=0為正常退出。? sys.getdefaultencoding(): 獲取系統(tǒng)當(dāng)前編碼,一般默認(rèn)為ascii。? sys.setdefaultencoding(): 設(shè)置系統(tǒng)默認(rèn)編碼,執(zhí)行dir(sys)時(shí)不會(huì)看到這個(gè)方法,在解釋器中執(zhí)行不通過,可以先執(zhí)行reload(sys),在執(zhí)行 setdefaultencoding('utf8'),此時(shí)將系統(tǒng)默認(rèn)編碼設(shè)置為utf8。(見設(shè)置系統(tǒng)默認(rèn)編碼 )? sys.getfilesystemencoding(): 獲取文件系統(tǒng)使用編碼方式,Windows下返回'mbcs',mac下返回'utf-8'.? sys.path: 獲取指定模塊搜索路徑的字符串集合,可以將寫好的模塊放在得到的某個(gè)路徑下,就可以在程序中import時(shí)正確找到。? sys.platform: 獲取當(dāng)前系統(tǒng)平臺(tái)。? sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 變量包含與標(biāo)準(zhǔn)I/O 流對(duì)應(yīng)的流對(duì)象. 如果需要更好地控制輸出,而print 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時(shí)候你就可以重定向輸出和輸入到其它設(shè)備( device ), 或者以非標(biāo)準(zhǔn)的方式處理它們

sys.argv

功能:在外部向程序內(nèi)部傳遞參數(shù)示例:sys.py

#!/usr/bin/env python

import sys

print sys.argv[0]

print sys.argv[1]

運(yùn)行:

# python sys.py argv1

sys.py argv1

自己動(dòng)手嘗試一下,領(lǐng)悟參數(shù)對(duì)應(yīng)關(guān)系

sys.exit(n)

功能:執(zhí)行到主程序末尾,解釋器自動(dòng)退出,但是如果需要中途退出程序,可以調(diào)用sys.exit函數(shù),帶有一個(gè)可選的整數(shù)參數(shù)返回給調(diào)用它的程序,表示你可以在主程序中捕獲對(duì)sys.exit的調(diào)用。(0是正常退出,其他為異常)

示例:exit.py

#!/usr/bin/env python

import sys

def exitfunc(value): print value sys.exit(0) print "hello" try: sys.exit(1) except SystemExit,value: exitfunc(value) print "come?"

運(yùn)行:

# python exit.py

hello

1

sys.path

功能:獲取指定模塊搜索路徑的字符串集合,可以將寫好的模塊放在得到的某個(gè)路徑下,就可以在程序中import時(shí)正確找到。

示例:

>>> import sys

>>> sys.path

['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']

sys.path.append("自定義模塊路徑")

sys.modules

功能:sys.modules是一個(gè)全局字典,該字典是python啟動(dòng)后就加載在內(nèi)存中。每當(dāng)程序員導(dǎo)入新的模塊,sys.modules將自動(dòng)記錄該模塊。當(dāng)?shù)诙卧賹?dǎo)入該模塊時(shí),python會(huì)直接到字典中查找,從而加快了程序運(yùn)行的速度。它擁有字典所擁有的一切方法。

示例:modules.py

#!/usr/bin/env python

import sys

print sys.modules.keys()

print sys.modules.values() print sys.modules["os"]

運(yùn)行:

python modules.py

['copy_reg', 'sre_compile', '_sre', 'encodings', 'site', '__builtin__',......

sys.stdin\stdout\stderr

功能:stdin , stdout , 以及stderr 變量包含與標(biāo)準(zhǔn)I/O 流對(duì)應(yīng)的流對(duì)象. 如果需要更好地控制輸出,而print 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時(shí)候你就可以重定向輸出和輸入到其它設(shè)備( device ), 或者以非標(biāo)準(zhǔn)的方式處理它們

作者:Aceeie

鏈接:https://www.zhihu.com/question/31843617/answer/150854646

來源:知乎

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

另轉(zhuǎn)載一篇博文

os與sys模塊的官方解釋如下:

os: This module provides a portable way of using operating system dependent functionality.

這個(gè)模塊提供了一種方便的使用操作系統(tǒng)函數(shù)的方法。

sys: This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter.

這個(gè)模塊可供訪問由解釋器使用或維護(hù)的變量和與解釋器進(jìn)行交互的函數(shù)。

os 常用方法

os.remove() 刪除文件

os.rename() 重命名文件

os.walk() 生成目錄樹下的所有文件名

os.chdir() 改變目錄

os.mkdir/makedirs 創(chuàng)建目錄/多層目錄

os.rmdir/removedirs 刪除目錄/多層目錄

os.listdir() 列出指定目錄的文件

os.getcwd() 取得當(dāng)前工作目錄

os.chmod() 改變目錄權(quán)限

os.path.basename() 去掉目錄路徑,返回文件名

os.path.dirname() 去掉文件名,返回目錄路徑

os.path.join() 將分離的各部分組合成一個(gè)路徑名

os.path.split() 返回( dirname(), basename())元組

os.path.splitext() 返回 (filename, extension) 元組

os.path.getatime\ctime\mtime 分別返回最近訪問、創(chuàng)建、修改時(shí)間

os.path.getsize() 返回文件大小

os.path.exists() 是否存在

os.path.isabs() 是否為絕對(duì)路徑

os.path.isdir() 是否為目錄

os.path.isfile() 是否為文件

sys 常用方法

sys.argv 命令行參數(shù)List,第一個(gè)元素是程序本身路徑

sys.modules.keys() 返回所有已經(jīng)導(dǎo)入的模塊列表

sys.exc_info() 獲取當(dāng)前正在處理的異常類,exc_type、exc_value、exc_traceback當(dāng)前處理的異常詳細(xì)信息

sys.exit(n) 退出程序,正常退出時(shí)exit(0)

sys.hexversion 獲取Python解釋程序的版本值,16進(jìn)制格式如:0x020403F0

sys.version 獲取Python解釋程序的版本信息

sys.maxint 最大的Int值

sys.maxunicode 最大的Unicode值

sys.modules 返回系統(tǒng)導(dǎo)入的模塊字段,key是模塊名,value是模塊

sys.path 返回模塊的搜索路徑,初始化時(shí)使用PYTHONPATH環(huán)境變量的值

sys.platform 返回操作系統(tǒng)平臺(tái)名稱

sys.stdout 標(biāo)準(zhǔn)輸出

sys.stdin 標(biāo)準(zhǔn)輸入

sys.stderr 錯(cuò)誤輸出

sys.exc_clear() 用來清除當(dāng)前線程所出現(xiàn)的當(dāng)前的或最近的錯(cuò)誤信息

sys.exec_prefix 返回平臺(tái)獨(dú)立的python文件安裝的位置

sys.byteorder 本地字節(jié)規(guī)則的指示器,big-endian平臺(tái)的值是'big',little-endian平臺(tái)的值是'little'

sys.copyright 記錄python版權(quán)相關(guān)的東西

sys.api_version 解釋器的C的API版本

總結(jié):

os模塊負(fù)責(zé)程序與操作系統(tǒng)的交互,提供了訪問操作系統(tǒng)底層的接口;sys模塊負(fù)責(zé)程序與python解釋器的交互,提供了一系列的函數(shù)和變量,用于操控python的運(yùn)行時(shí)環(huán)境。

python之OS模塊詳解

原文:http://www.cnblogs.com/cherishry/p/5725977.html

常見函數(shù)列表

os.sep:取代操作系統(tǒng)特定的路徑分隔符os.name:指示你正在使用的工作平臺(tái)。比如對(duì)于Windows,它是'nt',而對(duì)于Linux/Unix用戶,它是'posix'。os.getcwd:得到當(dāng)前工作目錄,即當(dāng)前python腳本工作的目錄路徑。os.getenv()和os.putenv:分別用來讀取和設(shè)置環(huán)境變量os.listdir():返回指定目錄下的所有文件和目錄名os.remove(file):刪除一個(gè)文件os.stat(file):獲得文件屬性os.chmod(file):修改文件權(quán)限和時(shí)間戳os.mkdir(name):創(chuàng)建目錄os.rmdir(name):刪除目錄os.removedirs(r“c:\python”):刪除多個(gè)目錄os.system():運(yùn)行shell命令os.exit():終止當(dāng)前進(jìn)程os.linesep:給出當(dāng)前平臺(tái)的行終止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'os.path.split():返回一個(gè)路徑的目錄名和文件名os.path.isfile()和os.path.isdir()分別檢驗(yàn)給出的路徑是一個(gè)目錄還是文件os.path.existe():檢驗(yàn)給出的路徑是否真的存在os.listdir(dirname):列出dirname下的目錄和文件os.getcwd():獲得當(dāng)前工作目錄os.curdir:返回當(dāng)前目錄('.')os.chdir(dirname):改變工作目錄到dirnameos.path.isdir(name):判斷name是不是目錄,不是目錄就返回falseos.path.isfile(name):判斷name這個(gè)文件是否存在,不存在返回falseos.path.exists(name):判斷是否存在文件或目錄nameos.path.getsize(name):或得文件大小,如果name是目錄返回0Los.path.abspath(name):獲得絕對(duì)路徑os.path.isabs():判斷是否為絕對(duì)路徑os.path.normpath(path):規(guī)范path字符串形式os.path.split(name):分割文件名與目錄(事實(shí)上,如果你完全使用目錄,它也會(huì)將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會(huì)判斷文件或目錄是否存在)os.path.splitext():分離文件名和擴(kuò)展名os.path.join(path,name):連接目錄與文件名或目錄os.path.basename(path):返回文件名os.path.dirname(path):返回文件路徑

文件操作

os.mknod("text.txt"):創(chuàng)建空文件fp = open("text.txt",w):直接打開一個(gè)文件,如果文件不存在就創(chuàng)建文件

關(guān)于open的模式

w 寫方式a 追加模式打開(從EOF開始,必要時(shí)創(chuàng)建新文件)r+ 以讀寫模式打開w+ 以讀寫模式打開a+ 以讀寫模式打開rb 以二進(jìn)制讀模式打開wb 以二進(jìn)制寫模式打開 (參見 w )ab 以二進(jìn)制追加模式打開 (參見 a )rb+ 以二進(jìn)制讀寫模式打開 (參見 r+ )wb+ 以二進(jìn)制讀寫模式打開 (參見 w+ )ab+ 以二進(jìn)制讀寫模式打開 (參見 a+ )

關(guān)于文件的函數(shù)

fp.read([size])

size為讀取的長度,以byte為單位

fp.readline([size])

讀一行,如果定義了size,有可能返回的只是一行的一部分

fp.readlines([size])

把文件每一行作為一個(gè)list的一個(gè)成員,并返回這個(gè)list。其實(shí)它的內(nèi)部是通過循環(huán)調(diào)用readline()來實(shí)現(xiàn)的。如果提供size參數(shù),size是表示讀取內(nèi)容的總長,也就是說可能只讀到文件的一部分。

fp.write(str)

把str寫到文件中,write()并不會(huì)在str后加上一個(gè)換行符

fp.writelines(seq)

把seq的內(nèi)容全部寫到文件中(多行一次性寫入)。這個(gè)函數(shù)也只是忠實(shí)地寫入,不會(huì)在每行后面加上任何東西。

fp.close()

關(guān)閉文件。python會(huì)在一個(gè)文件不用后自動(dòng)關(guān)閉文件,不過這一功能沒有保證,最好還是養(yǎng)成自己關(guān)閉的習(xí)慣。 如果一個(gè)文件在關(guān)閉后還對(duì)其進(jìn)行操作會(huì)產(chǎn)生ValueError

fp.flush()

把緩沖區(qū)的內(nèi)容寫入硬盤

fp.fileno()

返回一個(gè)長整型的”文件標(biāo)簽“

fp.isatty()

文件是否是一個(gè)終端設(shè)備文件(unix系統(tǒng)中的)

fp.tell()

返回文件操作標(biāo)記的當(dāng)前位置,以文件的開頭為原點(diǎn)

fp.next()

返回下一行,并將文件操作標(biāo)記位移到下一行。把一個(gè)file用于for … in file這樣的語句時(shí),就是調(diào)用next()函數(shù)來實(shí)現(xiàn)遍歷的。

fp.seek(offset[,whence])

將文件打操作標(biāo)記移到offset的位置。這個(gè)offset一般是相對(duì)于文件的開頭來計(jì)算的,一般為正數(shù)。但如果提供了whence參數(shù)就不一定了,whence可以為0表示從頭開始計(jì)算,1表示以當(dāng)前位置為原點(diǎn)計(jì)算。2表示以文件末尾為原點(diǎn)進(jìn)行計(jì)算。需要注意,如果文件以a或a+的模式打開,每次進(jìn)行寫操作時(shí),文件操作標(biāo)記會(huì)自動(dòng)返回到文件末尾。

fp.truncate([size])

把文件裁成規(guī)定的大小,默認(rèn)的是裁到當(dāng)前文件操作標(biāo)記的位置。如果size比文件的大小還要大,依據(jù)系統(tǒng)的不同可能是不改變文件,也可能是用0把文件補(bǔ)到相應(yīng)的大小,也可能是以一些隨機(jī)的內(nèi)容加上去。

目錄操作

os.mkdir("file")

創(chuàng)建目錄

復(fù)制文件:

shutil.copyfile("oldfile","newfile")

oldfile和newfile都只能是文件

shutil.copy("oldfile","newfile")

oldfile只能是文件夾,newfile可以是文件,也可以是目標(biāo)目錄

shutil.copytree("olddir","newdir")

復(fù)制文件夾.olddir和newdir都只能是目錄,且newdir必須不存在

os.rename("oldname","newname")

重命名文件(目錄).文件或目錄都是使用這條命令

shutil.move("oldpos","newpos")

移動(dòng)文件(目錄)

os.rmdir("dir")

只能刪除空目錄

shutil.rmtree("dir")

空目錄、有內(nèi)容的目錄都可以刪

os.chdir("path")

轉(zhuǎn)換目錄,換路徑

代碼演示

#!/usr/bin/env python

import os

print os.getcwd()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#獲取當(dāng)前路徑

print os.listdir('/mnt') #列出/mnt下面的所有目錄和文件 print os.mkdir('lala') #創(chuàng)建目錄lala和haha print os.mkdir('haha') print os.rmdir('haha') #刪除haha print os.rename('example.txt','back.txt') #修改文件名

運(yùn)行:

root@ruanyang-HP-ProDesk-680-G2-MT:/mnt/python# python os.py

/mnt/python

['proc', 'perl_bash', 'docker', 'warn', 'blog', 'python', 'hostname', 'test', 'tags', 'perl_DB', 'shell', 'perl_test', '.vimrc~', 'club.yml', 'test.c', '.vimrc'] None None None None root@ruanyang-HP-ProDesk-680-G2-MT:/mnt/python# ls back.txt exit.py lala modules.py os_file.py os.py sys.py

轉(zhuǎn)載于:https://www.cnblogs.com/liujiacai/p/7813056.html

總結(jié)

以上是生活随笔為你收集整理的python之sys模块详解_(转)python之os,sys模块详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。