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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3 sys模块

發布時間:2025/3/21 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3 sys模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sys模塊就是用來管理Python自身運行環境,Python就是解釋器,運行在操作系統上面的程序,所以sys包,可以用來管理Python運行的參數,比如內存,文件大小等等.
另外一個重要功能就是可以和自己進行命令交互

屬性方法說明
sys.path返回Python 解釋器自動查找所需模塊的路徑的列表
sys.path.append(path)添加路徑,用于調用模塊
sys.argv打印腳本名和腳本所帶的所有參數
sys.exit(n)退出程序,正常退出時exit(0),其他為異常
sys.stdout標準輸出流
sys.stdout.write(str)向標準輸出寫入內容
sys.stdin標準輸入流
sys.stdin.readline()從標準輸入讀一行,會讀取末尾的換行符。其中默認輸入的格式是字符串,如果是int,float類型則需要強制轉換。
sys.stderr標準錯誤流

sys.path

1. 什么是模塊?

把定義的變量和方法存放在文件中,為一些腳本或者交互式的解釋器實例使用,這個文件被稱為模塊

  • 模塊是一個包含所有你定義的函數和變量的文件,其后綴名是.py。
  • 模塊可以被別的程序引入,以使用該模塊中的函數等功能。
  • 一個模塊只會被導入一次。

2. 當使用import語句時,Python解釋器是怎么找的對應的文件的?

當解釋器遇到 import 語句,Python會在指定的搜索路徑下搜索對應的模塊(.py文件),如果找到就會被導入,找不到就會報錯。

3.搜索路徑

搜索路徑存放在sys模塊的path變量中

  • 搜索路徑是在Python編譯或安裝的時候確定的,安裝新的庫應該也會修改。搜索路徑被存儲在sys模塊中的path變量
import sys #引入 python 標準庫中的 sys.py 模塊print(sys.path) #['', 'C:\\Users\\AI0\\Anaconda3\\python36.zip', 'C:\\Users\\AI0\\Anaconda3\\DLLs', 'C:\\Users\\AI0\\Anaconda3\\lib', 'C:\\Users\\AI0\\Anaconda3', 'C:\\Users\\AI0\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Users\\AI0\\Anaconda3\\lib\\site-packages', 'C:\\Users\\AI0\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\AI0\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\AI0\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Users\\AI0\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\AI0\\.ipython']

sys.path 輸出是一個列表,指定模塊的搜索路徑,可以將寫好的模塊放在得到的某個路徑下,就可以在程序中import時正確找到。

  • 其中第一項是空串’’,代表當前目錄,指示Python首先搜索當前目錄中的模塊。
  • 如果在當前目錄下存在與要引入模塊同名的文件,就會把要引入的模塊屏蔽掉。

添加自己的搜索目錄方法

  • 一是直接修改sys.path,添加要搜索的目錄: sys.path.append(’/Users/michael/my_py_scripts’) 這種方法是在運行時修改,運行結束后失效
  • 第二種方法是設置環境變量PYTHONPATH,該環境變量的內容會被自動添加到模塊搜索路徑中。設置方式與設置Path環境變量類似。注意只需要添加你自己的搜索路徑,Python自己本身的搜索路徑不受影響。
  • sys.path.append(path)

    添加路徑,用于調用模塊。這種方法是運行時修改,腳本運行后就會失效

    sys.path.append('/Users/michael/my_py_scripts')

    sys.argv

    在外部向程序內部傳遞參數,保存了腳本名和參數列表

    print(sys.argv) #打印腳本名和腳本所帶的所有參數 print(sys.argv[0]) #打印腳本所跟的第0個參數 print(sys.argv[1]) #打印腳本所跟的第0個參數

    運行:

    python 1.py argv1 # 結果: [1.py,argv1] 1.py argv1

    sys.exit(n)

    執行到主程序末尾,解釋器自動退出,但是如果需要中途退出程序,可以調用sys.exit函數,帶有一個可選的整數參數返回給調用它的程序,表示你可以在主程序中捕獲對sys.exit的調用。(0是正常退出,其他為異常)

    import sysdef exitfunc(value):print valuesys.exit(0)print "hello"try:sys.exit(1) except SystemExit,value:exitfunc(value)

    運行結果:

    hello 1

    sys.stdout/sys.stderr/sys.stdin

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

    當我們在程序中print(val)時,就相當于我們把東西塞進sys.stdout管道里面即:print = sys.stdout.write(val+’\n’)

    stdout就像是一個類文件對象,因為你可以將他賦值給任意的一個文件對象,重定向輸出

    import sys print('222') __console = sys.stdout # 用于后期還原 with open('log.txt', 'a') as file:sys.stdout = file #把文對象賦給 sys.stdout,那么 print 調用的就是文件對象的 write 方法print('1111') # 這個print并不會打印到控制臺上sys.stdout = __console #如果之后要恢復,再把管道改為原來就行

    運行結果:

    • 控制臺輸出:222
    • 創建一個log.txt,里面打開內容是1111

    sys.stdout.write(str)

    向標準輸出寫入內容,例如:sys.stdout.write(“hello world”),屏幕輸出 hello world

    sys.stdin.readline()

    從標準輸入讀一行,會讀取末尾的換行符。其中默認輸入的格式是字符串,如果是int,float類型則需要強制轉換。

    import sys name=sys.stdin.readline() print(name) # 就是打印你剛輸入的內容

    更多參考sys模塊文檔

    總結

    以上是生活随笔為你收集整理的python3 sys模块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。