Python3 os模块应用
?
調用模塊的實質是運行python代碼,比如a.py文件里有函數f(),那么你在調用a模塊的時候,實質是運行了a模塊里的函數f(),這個時候內存里就有這個函數了,可以直接用,那是不是隨便一個py類型的文件都可以直接調用呢?不是的,調用模塊的優先級:先從當前目錄里面找你需要調用的模塊,當前目錄找不到的話就python自己的環境變量里找。
下面例出常用的os模塊的方法
import os,sys print(sys.path)#獲取python的環境變量,以list形式返回 #輸出:['E:\\study\\Automantic\\jxz-code\\Course4'] print(os.listdir('./'))#獲取指定目錄下的文件及文件夾名稱,以list形式返回 #輸出:['access.log', 'b.txt', 'c.txt', 'course4作業.py', 'goods.txt', 'user_info.txt', '、', '函數.py'] print(os.getcwd())#獲取當前目錄 #輸出:E:\study\Automantic\jxz-code\Course4 # print(os.chdir('E:\study\Automantic\jxz-code'))#更換當前目錄 print(os.rename('c.txt','a.txt'))#修改文件名稱 print(os.mkdir('新目錄'))#創建文件夾 print(os.rmdir('新目錄'))#刪除文件夾(只能刪除空文件夾) print(os.makedirs('E:\\xixi\\haha'))#依次創建目錄 print(os.removedirs('E:\\xixi\\haha'))#依次刪除非空目錄 print(os.sep)#獲取當前操作系統的路徑分隔符 #輸出:\ print(os.environ)#獲取當前操作系統的環境變量 #輸出:environ({'ALLUSERSPROFILE': 'C:\\ProgramData'}) print(os.pathsep)#獲取當前系統的環境變量中每個路徑的分隔符,linux是:,windows是; #輸出:; print(os.path.abspath(__file__))#獲取當前文件的絕對路徑 #輸出:E:\study\Automantic\jxz-code\Course4\函數.pyprint(os.path.basename(os.path.abspath(__file__))#輸出:函數.py print(os.path.dirname(os.path.abspath(__file__)))#獲取指定路徑的父目錄 #輸出:E:\study\Automantic\jxz-code\Course4 print(os.path.isdir(os.path.abspath(__file__)))#判斷指定路徑是不是一個文件夾 #輸出:False print(os.path.isfile(os.path.abspath(__file__)))#判斷指定路徑是不是一個文件 #輸出:True print(os.path.join('一級','二級','三級','haha.txt'))#將內容以當前操作系統的路徑分隔符拼接成一個路徑 #輸出:一級\二級\三級\haha.txt print(os.path.split('E:\study\Automantic\jxz-code\Course4\函數.py'))#分割路徑和文件名 #輸出:('E:\\study\\Automantic\\jxz-code\\Course4', '函數.py') print(os.path.exists('E:\study\Automantic\jxz-code\Course4\函數.py'))#判斷目錄或文件是否存在 #輸出:True
# 得到指定文件最后一次的訪問時間
print(os.path.getctime(os.path.abspath(__file__)))
# 得到指定文件最后一次的修改時間
print(os.path.getmtime(os.path.abspath(__file__)))
# 得到指定文件大小 單位: 字節
print(os.path.getsize(os.path.abspath(__file__)))
# 測試參數是否為絕對路徑
print(os.path.isabs(os.path.abspath(__file__)))
# splitext 分割文件名,返回文件名和擴展名組成的元祖
print(os.path.splitext(os.path.abspath(__file__)))
os和sys的應用:
問題:A君寫了一個小系統,模塊之間彼此可以正常調用,但是B君拷走了A君的代碼,運行各種報錯,大多為引用模塊不存在,函數、方法未定義等,這是因為A君運行的時候都已經把他的絕對路徑加進了python的環境變量,而B君在運行的時候并沒有加環境變量,運行程序,在調用模塊時,找不到模塊自然報錯了。
解決:上面的模塊介紹里可以看出,sys.path可以獲取到一個python環境變量的列表,那么我們只需要把代碼的工作目錄加到列表里就可以了,具體代碼如下:
import sys,os cwd=os.path.abspath(__file__) #當前文件的絕對路徑 pwd=os.path.dirname(cwd)#獲取當前文件的父級目錄 ppwd=os.path.dirname(pwd)#獲取當前文件的父級目錄的父級目錄 sys.path.insert(0,ppwd)#將當前文件的父級目錄的父級目錄加入python環境變量,那么這個文件夾下的所有.py文件都可以當做模塊引入了 from conf.setting import LOGS_PATH,FILE_PATH from lib.wrong import write write(LOGS_PATH,FILE_PATH)上題的截圖:
?
原文:https://www.cnblogs.com/znyyy/p/7716644.html轉載于:https://www.cnblogs.com/fmgao-technology/p/9056280.html
總結
以上是生活随笔為你收集整理的Python3 os模块应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP 规范之编程规范
- 下一篇: 铁路交通系统安全堪忧:丹麦国家铁路运营商