當前位置:成語大全網 - 書法字典 - python os和sys模塊之間的差異

python os和sys模塊之間的差異

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

os:這個模塊提供了壹種使用操作系統相關功能的可移植方式。

該模塊提供了壹種使用操作系統功能的便捷方式。

sys:這個模塊提供了對解釋器使用或維護的壹些變量以及與解釋器交互強烈的函數的訪問。

該模塊提供對解釋器使用或維護的變量以及與解釋器交互的函數的訪問。

綜上所述,os模塊負責程序與操作系統的交互,提供訪問操作系統底層的接口;Sys模塊負責程序和python解釋器之間的交互,並提供壹系列用於操縱python運行時環境的函數和變量。

操作系統的常用方法

Os.remove('路徑/文件名')刪除文件。

Os.rename(舊名稱,新名稱)重命名文件。

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

Os.chdir('dirname ')更改目錄。

Os.mkdir/makedirs('dirname ')創建目錄/多級目錄

Os.rmdir/removedirs('dirname ')刪除目錄/多級目錄

Os.listdir('dirname ')列出指定目錄中的文件。

獲取當前的工作目錄。

Os.chmod()更改目錄權限。

OS . path . basename(' path/filename ')刪除目錄路徑並返回文件名。

OS.path.dirname ('path/filename ')刪除文件名並返回到目錄路徑。

OS.path.join (path1 [,path2 [,...]])將分開的部分組合成壹個路徑名。

Os.path.split('path ')返回(dirname()、basename())元組。

Os.path.splitext()返回(文件名,擴展名)的元組。

OS . path . get time \ ctime \ mtime分別返回上次訪問、創建和修改時間。

Os.path.getsize()返回文件大小。

os.path.exists()存在嗎?

os.path.isabs()是絕對路徑嗎?

os.path.isdir()是目錄嗎?

os.path.isfile()是文件嗎?

Sys通用方法

Sys.argv命令行參數列表,第壹個元素是程序本身的路徑。

Sys.modules.keys()返回所有導入模塊的列表。

Sys.exc_info()獲取當前正在處理的異常類,以及exc_type、exc_value、exc_traceback當前正在處理的異常詳細信息。

Sys.exit(n)退出程序,正常退出時退出(0)。

Sys.hexversion獲取Python解釋器的版本值,格式為16,如0x020403F0。

Sys.version獲取Python解釋器的版本信息。

sys.maxint的最大Int值

最大unicode最大Unicode值。

Sys.modules返回系統導入的模塊字段,其中key是模塊名稱,value是模塊。

Sys.path返回模塊的搜索路徑,PYTHONPATH環境變量的值用於初始化。

Sys.platform返回操作系統平臺名稱。

Sys.stdout標準輸出

Sys.stdin標準輸入

Sys.stderr錯誤輸出

Sys.exc_clear()用於清除當前線程的當前或最近的錯誤消息。

Sys.exec_prefix返回與平臺無關的python文件的安裝位置。

sys.byteorder的本地字節規則的指示符,big-endian平臺的值為' big ',little-Endian平臺的值為' little '。

Sys.copyright記錄python版權相關的東西。

sys.api_version解釋器的c的API版本。

系統標準輸入,系統標準輸出,系統標準錯誤

stdin、stdout和stderr變量包含對應於標準I/O流的流對象。如果妳需要更好的控制輸出,但是print不能滿足妳的要求,它們就是妳需要的。您還可以替換它們,在這種情況下,您可以將輸出和輸入重定向到其他設備,或者以非標準的方式處理它們。

我們經常使用print和raw_input進行輸入和打印,那麽print和raw_input是如何與標準輸入/輸出流相關聯的呢?

實際上,Python程序的標準輸入/輸出/錯誤流都是在sys模塊中定義的,即:sys。標準輸入,系統。stdout和sys。標準錯誤。

以下程序也可用於輸入和輸出相同的內容:

導入系統

sys.stdout.write('HelloWorld!')

打印“請輸入您的姓名:”,

name = sys . stdin . readline()[:-1]

打印“嗨,%s!”% name

那麽sys.stdin,sys.stdout,stderr到底是什麽?我們在Python運行時環境中輸入以下代碼:

導入系統

對於f in(系統標準輸入,系統標準輸出,系統標準錯誤):打印f

輸出是:

& lt打開文件' & ltstdin & gt',模式“r”在892210 & gt;

& lt打開文件' & lt' stdout & gt',模式“w”at 892270 & gt;

& lt打開文件' & ltstderr & gt',模式' w at 8922 d0 >;

可以看出,stdin、stdout、stderr在Python中無非是文件屬性的對象,在Python啟動時自動關聯Shell環境中的標準輸入、輸出和錯誤。

Python程序在Shell中的I/O重定向與本文開頭提到的DOS命令的重定向完全壹樣。事實上,這種重定向是由Shell提供的,與Python本身無關。那麽,我們能否將stdin、stdout、stderr和stderr讀寫操作重定向到Python程序中的壹個內部對象呢?答案是肯定的。

Python提供了壹個StringIO模塊來實現這個想法,比如:

從斯特林堡進口斯特林堡

導入系統

buff =StringIO()

Temp =sys.stdout #保存標準輸入輸出流。

Sys.stdout =buff #將標準I/O流重定向到buff對象。

打印42,'妳好',0.001

Sys.stdout=temp #恢復標準I/O流。

print buff.getvalue()

閱讀全文