电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python學習之os模塊及用法

瀏覽:5日期:2022-07-23 09:21:05

os 模塊代表了程序所在的操作系統,主要用于獲取程序運行所在操作系統的相關信息。

在 Python 的交互式解釋器中先導入 os 模塊,然后輸入 os.__all__ 命令(__all__ 變量代表了該模塊開放的公開接口),即可看到該模塊所包含的全部屬性和函數。

此處僅介紹 os 模塊中常用的屬性和函數:

os.name:返回導入依賴模塊的操作系統名稱,通常可返回 ’posix’、’nt’、 ’java’ 等值其中之一。 os.environ:返回在當前系統上所有環境變量組成的字典。 os.fsencode(filename):該函數對類路徑(path-like)的文件名進行編碼。 os.fsdecode(filename):該函數對類路徑(path-like)的文件名進行解碼。 os.PathLike:這是一個類,代表一個類路徑(path-like)對象。 os.getenv(key, default=None):獲取指定環境變量的值。 os.getlogin():返回當前系統的登錄用戶名。與該函數對應的還有 os.getuid()、os.getgroups()、os.getgid() 等函數,用于獲取用戶 ID、用戶組、組 ID 等,這些函數通常只在 UNIX 系統上有效。 os.getpid():獲取當前進程 ID。 os.getppid():獲取當前進程的父進程 ID。 os.putenv(key, value):該函數用于設置環境變量。 os.cpu_count():返回當前系統的 CPU 數量。 os.sep:返回路徑分隔符。 os.pathsep:返回當前系統上多條路徑之間的分隔符。一般在 Windows 系統上多條路徑之間的分隔符是英文分號(;);在 UNIX 及類 UNIX 系統(如 Linux、Mac os X)上多條路徑之間的分隔符是英文冒號(:)。 os.linesep:返回當前系統的換行符。一般在 Windows 系統上換行符是“rn”:在 UNIX 系統上換行符是“n”;在 Mac os X 系統上換行符是“r”。 os.urandom(size):返回適合作為加密使用的、最多由 N 個字節組成的 bytes 對象。該函數通過操作系統特定的隨機性來源返回隨機字節,該隨機字節通常是不可預測的,因此適用于絕大部分加密場景。

下面程序示范了 os 模塊的大部分函數的用法:

import os# 顯示導入依賴模塊的操作系統的名稱print(os.name)# 獲取PYTHONPATH環境變量的值print(os.getenv(’PYTHONPATH’))# 返回當前系統的登錄用戶名print(os.getlogin())# 獲取當前進程IDprint(os.getpid())# 獲取當前進程的父進程IDprint(os.getppid())# 返回當前系統的CPU數量print(os.cpu_count())# 返回路徑分隔符print(os.sep)# 返回當前系統的路徑分隔符print(os.pathsep)# 返回當前系統的換行符print(os.linesep)# 返回適合作為加密使用的、最多3個字節組成的bytesprint(os.urandom(3))

運行上面程序,可以看到如下輸出結果:

ntNoneyeeku9904120368;

b’x12x1excf’

從上面的輸出結果可以看出,在 Windows 系統上 Python 導入依賴模塊的操作系統名稱為“nt”;當前系統的登錄用戶名是“yeeku”:當前進程 ID 為“9904”;當前進程的父進程 ID 為“12036”;當前系統上有 8 個 CPU;當前系統(Windows)的路徑分隔符是“”;當前系統(Windows)上多條路徑之間的分隔符是分號(;);但在當前系統(Windows)上換行符不能明顯看到,這是因為當在控制臺輸出“rn” 時才會產生兩個空行。

此外,在 os 模塊下還包含大量操作文件和目錄的功能函數,本教程將會在后續章節專門介紹這些功能函數。

在 os 模塊下還包含各種進程管理函數,它們可用于啟動新進程、中止己有進程等。在 os 模塊下與進程管理相關的函數如下:

os.abort():生成一個 SIGABRT 信號給當前進程。在 UNIX 系統上,默認行為是生成內核轉儲;在 Windows 系統上,進程立即返回退出代碼 3。

os.execl(path, arg0, arg1, ...):該函數還有一系列功能類似的函數,比如 os.execle()、os.execlp() 等,這些函數都是使用參數列表 arg0, arg1,...來執行 path 所代表的執行文件的。

os.forkpty():fork一個子進程。

os.kill(pid, sig):將 sig 信號發送到 pid 對應的過程,用于結束該進程。

os.killpg(pgid, sig):將 sig 信號發送到 pgid 對應的進程組。

os.popen(cmd, mode=’r’, buffering=-1):用于向 cmd 命令打開讀寫管道(當 mode 為 r 時為只讀管道,當 mode 為 rw 時為讀寫管道),buffering 緩沖參數與內置的 open() 函數有相同的含義。該函數返回的文件對象用于讀寫字符串,而不是字節。

os.spawnl(mode, path, ...):該函數還有一系列功能類似的函數,比如 os.spawnle()、os.spawnlp() 等,這些函數都用于在新進程中執行新程序。

os.startfile(path[,operation]):對指定文件使用該文件關聯的工具執行 operation 對應的操作。如果不指定 operation 操作,則默認執行打開(open)操作。operation 參數必須是有效的命令行操作項目,比如 open(打開)、edit(編輯)、print(打印)等。

os.system(command):運行操作系統上的指定命令。

下面程序示范了在 os 模塊中與進程管理相關的函數的功能:

import os# 運行平臺上的cmd命令os.system(’cmd’)# 使用Excel打開g:abc.xls文件os.startfile(’g:abc.xls’)os.spawnl(os.P_NOWAIT, ’E:Tools編輯工具Notepad++.7.5.6.bin.x64notepad++.exe’, ’ ’)# 使用python命令執行os_test.py程序os.execl('D:PythonPython36python.exe', ' ', ’os_test.py’, ’i’)

如果直接運行上面程序,可以看到程序運行后使用 Excel 打開了 abe.xls 文件,也打開了 Notepad++ 工具,還使用 python 命令運行了 os_test.py 文件。但如果將程序中粗體字代碼取消注釋,將看到程序運行后只是啟動了 cmd 命令行程序,這是因為使用 as.system() 函數來運行程序時,新程序所在的進程會替代原有的進程。

知識點補充:

os就是“operating system”的縮寫,顧名思義,os模塊提供的就是各種 Python 程序與操作系統進行交互的接口。通過使用os模塊,一方面可以方便地與操作系統進行交互,另一方面頁可以極大增強代碼的可移植性。如果該模塊中相關功能出錯,會拋出OSError異常或其子類異常。

注意

如果是讀寫文件的話,建議使用內置函數open();

如果是路徑相關的操作,建議使用os的子模塊os.path;

如果要逐行讀取多個文件,建議使用fileinput模塊;

要創建臨時文件或路徑,建議使用tempfile模塊;

要進行更高級的文件和路徑操作則應當使用shutil模塊。

到此這篇關于Python學習之os模塊及用法的文章就介紹到這了,更多相關Python os模塊及用法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 上海logo设计| 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 深圳律师咨询_深圳律师事务所_华荣【免费在线法律咨询】网 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 短信营销平台_短信群发平台_106短信发送平台-河南路尚 | 沈阳楼承板_彩钢板_压型钢板厂家-辽宁中盛绿建钢品股份有限公司 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 陕西安闸机-伸缩门-车牌识别-广告道闸——捷申达门业科技 | 光伏家 - 太阳能光伏发电_分布式光伏发电_太阳能光伏网 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 首页|光催化反应器_平行反应仪_光化学反应仪-北京普林塞斯科技有限公司 | 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 哈尔滨治「失眠/抑郁/焦虑症/精神心理」专科医院排行榜-京科脑康免费咨询 一对一诊疗 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 高压包-点火器-高压发生器-点火变压器-江苏天网 |