1. 程式人生 > >python模塊 os&sys&subprocess&hashlib模塊

python模塊 os&sys&subprocess&hashlib模塊

路徑 ash 大小 ont 名稱 enc -s 文件權限 stdout

os模塊

# os模塊可根據帶不帶path分為兩類
# 不帶path
print(os.getcwd())  # 得到當前工作目錄
print(os.name)  # 指定你正在使用的操作系統,windows為nt,linux為“posix"
os.shell()      # 運行shell命令
print(os.environ) # 返回操作系統所有的環境變量
print(os.getenv("home")) # 讀取指定環境變量的值
os.environ.setdefault("home","c:\windows")
print(os.linesep) #
給出當前系統的行中止符,Windows使用‘\r\n‘,Linux and MAC使用‘\n‘ print(os.listdir()) # 返回指定目錄下的所有文件和目錄名,默認當前目錄下。 os.remove() # 刪除指定的文件 os.mkdir() # 創建一個目錄 os.makedirs(r"d:\11\22") # 創建多級目錄 os.removedirs(r"d:\11\22") # 刪除多級目錄,目錄不為空時報錯,刪除後上級目錄為空的話繼續刪除 os.rename("old","new") print(os.stat("time模塊.py")) #獲取文件屬性
os.chmod() # 修改文件權限與時間戳 os.chdir(dirname) # 修改工作目錄到dirname os.get_terminal_size() # 獲取當前終端的大小 os.kill(10884,signal.SIGKILL) # 殺死進程 # 帶path os.path.abspath() # 獲取絕對路徑 os.path.dirname() # 獲取路徑名 os.path.basename() # 獲取文件名 os.path.getsize() # 獲取文件大小 os.path.split() # 獲取一個路徑的目錄名與文件名 e.g os.path.split(‘/home/swaroop/byte/code/poem.txt‘) 結果:(‘/home/swaroop/byte/code‘, ‘poem.txt‘)
os.path.splitext() # 分離擴展名 e.g os.path.splitext(‘/usr/local/test.py‘) 結果:(‘/usr/local/test‘, ‘.py‘) os.path.join(dir,filename) #結合目錄名與文件名 os.path.isfile() # 判斷是否是一個文件 os.path.isdir() # 判斷是否是一個目錄 os.path.isabs() # 判斷是否是絕對路徑 os.path.exists() # 判斷給出的路徑是否真的存在

sys模塊

sys.argv                            # 命令行參數List,第一個元素是程序本身路徑
sys.exit(n)                         # 退出程序,正常退出時exit(0)
sys.version                         # 獲取Python解釋程序的版本信息
sys.maxint                          # 最大的Int值
sys.path                            # 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值
sys.platform                        # 返回操作系統平臺名稱
sys.stdout.write(please:)         # 標準輸出 , 引出進度條的例子, 註,在py3上不行,可以用print代替
val = sys.stdin.readline()[:-1]     # 標準輸入
sys.getrecursionlimit()             # 獲取最大遞歸層數
sys.setrecursionlimit(1200)         # 設置最大遞歸層數
sys.getdefaultencoding()            # 獲取解釋器默認編碼
sys.getfilesystemencoding           # 獲取內存數據存到文件裏的默認編碼

subprocess模塊

hashlib模塊

# 用於加密相關的操作,代替了md5模塊和sha模塊,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
import hashlib
c = hashlib.sha1()c.update("admin".encode("utf8"))print(s.hexdigest())print(s.digest())

# 以上加密算法雖然依然非常厲害,但時候存在缺陷,即:通過撞庫可以反解。所以,有必要對加密算法中添加自定義key再來做加密。
s = hashlib.md5(bytes("451sdhjshdjs",encoding="utf-8"))
s.update(bytes("admin", encoding="utf-8"))
print(s.hexdigest())

# python內置還有一個 hmac 模塊,它內部對我們創建 key 和 內容 進行進一步的處理然後再加密
import hmac
h = hmac.new(bytes("shsh55", encoding="utf-8"))
h.update(bytes("admin", encoding="utf-8"))
print(h.hexdigest())

python模塊 os&sys&subprocess&hashlib模塊