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