問題是這樣的:用python寫的程序,去讀取一些目錄和文件進行處理:比如說其中的中文目錄名如下:
示波器,曲線,卡哇伊小屋等等。然後比如示波器文件夾下面有下面文件:0.htm,0.png,示波器.mp4
我寫的目錄和文件訪問程序如下:
#根據絕對路徑獲取目錄下面所有的文件的絕對路徑,文本信息全部用txt文件,圖片信息全部用png文件,視頻信息
def getFiles_fromAbsPath(inputDir):
curPath = os.getcwd()
# 靠必須要拆分成多個路徑,否則不能通過
os.chdir(inputDir)
#主要是為了獲取sequence.txt文件(如果問題是這樣的:用python寫的程序,去讀取一些目錄和文件進行處理:比如說其中的中文目錄名如下:
示波器,曲線,卡哇伊小屋等等。然後比如示波器文件夾下面有下面文件:0.htm,0.png,示波器.mp4
我寫的目錄和文件訪問程序如下:
#根據絕對路徑獲取目錄下面所有的文件的絕對路徑,文本信息全部用txt文件,圖片信息全部用png文件,視頻信息
def getFiles_fromAbsPath(inputDir):
curPath = os.getcwd()
# 靠必須要拆分成多個路徑,否則不能通過
os.chdir(inputDir)
#主要是為了獲取sequence.txt文件(如果存在的話)
textInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith("sequence.txt")]
pictureInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith(".png") ]
#htm只需要返回0.htm進行處理
htmInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith("0.htm") ]
#獲取視頻的地址
videoInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith(".mp4") ]
#print inputDirs
realTextInputDirs = []
realPictureInputDirs = []
realHtmInputDirs = []
realVideoInputDirs = []
for path in textInputDirs:
realTextInputDirs.append(os.path.abspath(path))
for path in pictureInputDirs:
realPictureInputDirs.append(os.path.abspath(path))
for path in htmInputDirs:
#realHtmInputDirs.append(os.path.abspath(path))
realHtmInputDirs.append(os.path.join(inputDir , path))
for path in videoInputDirs:
realVideoInputDirs.append(os.path.abspath(path))
os.chdir(curPath)
sequenceFileName = ""
videoFileName = ""
if realTextInputDirs:
sequenceFileName = realTextInputDirs[0]
if realVideoInputDirs:
videoFileName = realVideoInputDirs[0]
return sequenceFileName,realPictureInputDirs,realHtmInputDirs[0] , videoFileName
但是用0.htm得到的絕對路徑去讀取該文件的的時候
fr = open(sFileName, "r"),這個sFileName是讀取的0,htm的絕對路徑,但是發生錯誤,看了調試信息:
這個時候文件的路徑變成了:
'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\production\һ�ɳ���0.htm'
中文的路徑:"示波器"沒了
正確的路徑是:
'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\production\示波器\0.htm'
而且亂碼導致了:"示波器"和它後面的"\"都在一起了,所以讀0.htm文件立刻程序崩潰。
我在python文件中加了:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
還是沒有用
朋友們,能指導一下:python如何讀取中文目錄而不亂碼嗎,十分感謝
http://blog.csdn.net/zhaoxjzhao/article/details/7439159
你直接把路徑都用utf8編碼,然後再處理