python下sys/os/subprocess/configparser模塊用法

1、os常用命令

import os
# 操作系統類型,只有兩個nt和posix;nt表示windows內核系統,posix表示linux/unix內核系統
print(os.name)

#獲取詳細的系統信息;只能在linux系統下使用
# print(os.uname())

# 獲取系統中的環境變量
print(os.environ)
#獲取指定環境變量的值
print(os.environ.get("PATH"))
#  得到當前工作目錄的絕對路徑
print(os.getcwd())

#返回指定目錄下所有的目錄和文件名稱,os.listdir([path])沒有path返回當前工作目錄下的
print(os.listdir(r"D:\Drivers"))

# 創建指定目錄也就是文件夾
# print(os.mkdir(r"D:\Drivers\test"))
# 刪除指定目錄
# print(os.rmdir(r"D:\Drivers\test"))

# 獲取文件屬性
print(os.stat(r"E:\5月份訂單.docx")) # os.stat_result(st_mode=33206, st_ino=1407374883554843, st_dev=1615780850, st_nlink=1, st_uid=0, st_gid=0, st_size=835031, st_atime=1562915273, st_mtime=1561784030, st_ctime=1561784028)
#修改文件名稱
os.rename(r"E:\5月份訂單.docx",r"E:\5月份訂單2.docx")

#刪除普通文件
# os.remove(r"E:\test.docx")

# 運行shell命令
os.system("notepad")
os.system("shutdown -s -t 10")
os.system("notepad")
os.system("notepad")


os.getcwd() #獲取當前工作目錄,即當前python腳本工作的目錄路徑
os.chdir("dirname")  #改變當前腳本工作目錄;相當於shell下cd
os.curdir  #返回當前目錄: ('.')
os.pardir  #獲取當前目錄的父目錄字符串名:('..')
os.makedirs('dirname1/dirname2')    #可生成多層遞歸目錄
os.removedirs('dirname1')    #若目錄爲空,則刪除,並遞歸到上一級目錄,如若也爲空,則刪除,依此類推
os.mkdir('dirname')    #生成單級目錄;相當於shell中mkdir dirname
os.rmdir('dirname')    #刪除單級空目錄,若目錄不爲空則無法刪除,報錯;相當於shell中rmdir dirname
os.listdir('dirname')    #列出指定目錄下的所有文件和子目錄,包括隱藏文件,並以列表方式打印
os.remove()  #刪除一個文件
os.rename("oldname","newname")  #重命名文件/目錄
os.stat('path/filename') # 獲取文件/目錄信息
os.sep   # 輸出操作系統特定的路徑分隔符,win下爲"\\",Linux下爲"/"
os.linesep    #輸出當前平臺使用的行終止符,win下爲"\t\n",Linux下爲"\n"
os.pathsep    #輸出用於分割文件路徑的字符串 win下爲;,Linux下爲:
os.name    #輸出字符串指示當前使用平臺。win->'nt'; Linux->'posix'
os.system("bash command")  #運行shell命令,直接顯示
os.popen("bash command)  #運行shell命令,獲取執行結果
os.environ  #獲取系統環境變量
os.path.abspath(path) #返回path規範化的絕對路徑 os.path.split(path) 將path分割成目錄和文件名二元組返回 os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素 os.path.basename(path) 返回path最後的文件名。如何path以/或\結尾,那麼就會返回空值。
                        #即os.path.split(path)的第二個元素
os.path.exists(path)  #如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)  #如果path是絕對路徑,返回True
os.path.isfile(path)  #如果path是一個存在的文件,返回True。否則返回False
os.path.isdir(path)  #如果path是一個存在的目錄,則返回True。否則返回False
os.path.join(path1[, path2[, ...]])  #將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略
os.path.getatime(path)  #返回path所指向的文件或者目錄的最後訪問時間
os.path.getmtime(path)  #返回path所指向的文件或者目錄的最後修改時間
os.path.getsize(path) #返回path的大小

2、sys常用命令

sys.argv       #命令行參數List,第一個元素是程序本身路徑
sys.exit(n)        #退出程序,正常退出時exit(0),錯誤退出sys.exit(1)
sys.version        #獲取Python解釋程序的版本信息
sys.path           #返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值
sys.platform       #返回操作系統平臺名稱

import sys,time
for i in range(10):
    sys.stdout.write('#')
    time.sleep(1)
    sys.stdout.flush()

3、subprocess模塊

subprocess.PIPE:在創建Popen對象時,subprocess.PIPE可以初始化stdin, stdout或stderr參數。表示與子進程通信的標準流。
subprocess.STDOUT:創建Popen對象時,用於初始化stderr參數,表示將錯誤通過標準輸出流輸出。

Popen.poll() 
用於檢查子進程是否已經結束。設置並返回returncode屬性。

Popen.wait() 
等待子進程結束。設置並返回returncode屬性。

Popen.communicate(input=None)
與子進程進行交互。向stdin發送數據,或從stdout和stderr中讀取數據。可選參數input指定發送到子進程的參數。 Communicate()返回一個元組:(stdoutdata, stderrdata)。注意:如果希望通過進程的stdin向其發送數據,在創建Popen對象的時候,參數stdin必須被設置爲PIPE。同樣,如 果希望從stdout和stderr獲取數據,必須將stdout和stderr設置爲PIPE。

Popen.send_signal(signal) 
向子進程發送信號。

Popen.terminate()
停止(stop)子進程。在windows平臺下,該方法將調用Windows API TerminateProcess()來結束子進程。

Popen.kill()
殺死子進程。

Popen.stdin 
如果在創建Popen對象是,參數stdin被設置爲PIPE,Popen.stdin將返回一個文件對象用於策子進程發送指令。否則返回None。

Popen.stdout 
如果在創建Popen對象是,參數stdout被設置爲PIPE,Popen.stdout將返回一個文件對象用於策子進程發送指令。否則返回 None。

Popen.stderr 
如果在創建Popen對象是,參數stdout被設置爲PIPE,Popen.stdout將返回一個文件對象用於策子進程發送指令。否則返回 None。

Popen.pid 
獲取子進程的進程ID。

Popen.returncode 
獲取進程的返回值。如果進程還沒有結束,返回None。

import subprocess
def create_process(cmd):
    p = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
    result = p.stdout.read()
    code = p.wait()
    return code,result
if __name__ == '__main__':
    a,b = create_process("dir")
    print(a,b.decode("gbk"))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章