Python os模块常用介绍
os模塊提供了大量的文件和目錄操作方法函數。
讀取文件獲取目錄一個常見的問題就是無法顯示中文目錄,網上找的解決方法均是通過重新設置編碼方式,通過重新加載sys,設置系統編碼方式
import os import sys reload(sys) print "系統默認編碼方式:",sys.getdefaultencoding()sys.setdefaultencoding('utf8') print "設置后系統的編碼方式:",sys.getdefaultencoding()print(os.path.abspath('coutry.txt'))發現有個系統編碼,win7和win10都是使用的是GBK編碼,查詢編碼方式,在Windows平臺下,進入DOS窗口,輸入:chcp
936對應的編碼格式為GBK。或者使用進入DOS窗口,在標題欄右鍵/屬性,顯示當前代碼頁為936--簡體中文GBK
那如何獲取當前文件的編碼格式呢,使用chardet庫中的detect()函數
import os import sys import chardet print "系統默認編碼方式:",sys.getdefaultencoding()print(chardet.detect(os.path.abspath('coutry.txt')))發現使用的是GB2312編碼方式,所以對于中文亂碼,就可以應當對每一個文件路徑做編碼轉換 很簡單 就是先按照 GB2312 decode 然后再按照 UTF-8 encode即可。
import os#獲取絕對路徑 print(os.path.abspath('coutry.txt').decode('GBK').encode('utf-8'))獲取絕對路徑的方法還有一個os.path._getfullpathname()函數
print(os.path._getfullpathname('coutry.txt'))那如何獲取當前文件所在的目錄呢?看以下實例
import os#獲取絕對路徑 print(os.path.abspath('coutry.txt').decode('GBK').encode('utf-8')) #獲取目錄 print(os.path.dirname('coutry.txt')) print(os.path.dirname('G:\資料\自動化測試\Exercise\XML\coutry.txt'))print(os.path.dirname(os.path.abspath('coutry.txt').decode('GBK').encode('utf-8')))abspath 可以打印出絕對路徑(包含文件名):G:\資料\自動化測試\Exercise\XML\coutry.txt
dirname()如果只是給出文件的絕對路徑,才能返回出具體的路徑值,如果參數為文件名,則返回為空
os.path.dirname(os.path.dirname)獲得文件的目錄
那這樣獲取文件目錄就有點麻煩,可以使用os模塊中getcwd()獲取當前文件目錄
import osprint(os.path.dirname(os.path.abspath('coutry.txt').decode('GBK').encode('utf-8')))print(os.getcwd().decode('GBK').encode('utf-8'))有篇不錯的介紹推薦一下,見介紹
總結
以上是生活随笔為你收集整理的Python os模块常用介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中的encode()和dec
- 下一篇: Python-Requests.post