读取python遍历中文目录得到的文件路径报错 python读取中文目录出现乱码

python\u4e2d\u8bfb\u53d6\u6587\u4ef6\uff08\u8def\u5f84\u542b\u4e2d\u6587\uff09\u51fa\u73b0\u4e71\u7801\u95ee\u9898\u3002

\u89e3\u538b\u6587\u4ef6\u51fa\u73b0\u4e2d\u6587\u4e71\u7801\u600e\u4e48\u529e\u89e3\u51b3\u529e\u6cd5

\u89e3\u538b\u6587\u4ef6\u51fa\u73b0\u4e2d\u6587\u4e71\u7801\u600e\u4e48\u529e\u89e3\u51b3\u529e\u6cd5

这是因为路径里面包含中文的原因:

  1. linux的系统字符编码默认为utf-8,而要搜索的文件路径nameFile是Unicode,需要进行解码成unicode,因此作如下修改:

  2. fout = codecs.open(nameFile.encode("utf-8") , "w" , "utf-8"

  3. 当然,另外一种方法就是修改为英文的路径;

  4. 关于编码和解码的知识,请参考:http://www.cnblogs.com/qiernonstop/p/3634462.html



linux 的系统字符编码通常为utf-8,你的nameFile文件名称似乎是经过解码成unicode的,需要在按系统字符集编码进行处理:

OS_CHARSET = 'utf-8'
    ...
    fout = codecs.open(nameFile.encode(OS_CHARSET), 'w', 'utf-8')
    ...


建议你把代码都贴出来, 另外,你的文件系统本身是什么编码? 即你的文件系统里那些中文文件、目录的名字本身用的什么编码。恐怕不是 utf-8 吧

  • 璇诲彇python閬嶅巻涓枃鐩綍寰楀埌鐨勬枃浠惰矾寰勬姤閿
    绛旓細杩欐槸鍥犱负璺緞閲岄潰鍖呭惈涓枃鐨勫師鍥狅細linux鐨勭郴缁熷瓧绗︾紪鐮侀粯璁や负utf-8锛岃岃鎼滅储鐨勬枃浠惰矾寰刵ameFile鏄疷nicode锛岄渶瑕佽繘琛岃В鐮佹垚unicode锛屽洜姝や綔濡備笅淇敼锛歠out = codecs.open(nameFile.encode("utf-8") , "w" , "utf-8"褰撶劧锛屽彟澶栦竴绉嶆柟娉曞氨鏄慨鏀逛负鑻辨枃鐨勮矾寰勶紱鍏充簬缂栫爜鍜岃В鐮佺殑鐭ヨ瘑锛岃鍙傝冿細http:/...
  • python閬嶅巻鐩綍灏辨槸杩欎箞绠鍗
    绛旓細浜屻佷娇鐢╣lob.glob glob鍙互鏍规嵁浣犱娇鐢ㄧ殑閫氶厤绗﹀鏂囦欢杩涜鍖归厤锛屽埄鐢ㄨ繖涓壒鎬ф垜浠彲浠ュ垪鍑哄綋鍓嶇洰褰曚笅閮芥湁鍝簺鏂囦欢鍜屽瓙鐩綍锛屽涓嬩唬鐮侊細涓夈佷娇鐢╫s.listdir os.listdir鍚屾牱鍙互鍒楀嚭鏌愪釜鐩綍涓嬮兘鏈夊摢浜涙枃浠跺拰瀛愮洰褰曪紝濡備笅浠g爜锛氬洓銆佷娇鐢╫s.walk os.walk鍦閬嶅巻鐩綍鏂归潰闈炲父寮哄ぇ锛屽畠涓嶄絾鍙互閬嶅巻浣犻渶瑕佺殑鐩綍锛屼篃...
  • Python涓濡備綍閬嶅巻鎸囧畾鐩綍涓嬬殑鎵鏈夋枃浠?
    绛旓細渚嬪锛氬湪C:\TDDOWNLOAD鐩綍涓嬫湁a.txt銆乥.txt涓や釜鏂囦欢锛屽彟鏈塡sub1瀛愭枃浠跺す锛孋:\TDDOWNLOAD\sub1涓嬪張鏈塩.txt銆乨.txt涓や釜鏂囦欢銆1.os.walk os.walk()杩斿洖涓涓笁鍏冪礌鐨則uple锛氬綋鍓嶈矾寰勩佸瓙鏂囦欢澶瑰悕绉般佹枃浠跺垪琛ㄣ>>> import os >>> def fun(path ):...for root,dirs,files in os.walk(pat...
  • python涓鐨刼s.walk鍑芥暟涓轰粈涔閬嶅巻甯︽湁涓枃鐨勮矾寰勬椂灏卞け璐
    绛旓細鏂囦欢澶撮儴鐨勭紪鐮佹牸寮忓0鏄庯紝鍙槸鍛婅瘔瑙i噴鍣紝鏈枃浠舵槸浠涔堢紪鐮佹牸寮忕殑锛屼笌浣犺繖涓棶棰樺苟鏃犵洿鎺ュ叧绯汇俹s.walk()涓簲璇ヤ紶str杩樻槸unicode锛岃繖涓棶棰樹綘搴旇鍘绘煡涓嬫枃妗o紝鑰屼笉鏄潬鐚溿傝瘯涓涓嬭繖鏍峰仛鍚э細os.walk(u'鍚涓枃鐨勮矾寰'.encode('gbk'))
  • python 鐢╫s.walk()閬嶅巻鐩綍鏃,涓枃鏂囦欢鍚嶆樉绀轰负涔辩爜
    绛旓細import os,sys def processunicode(value): #瀹氫箟涓涓鐞唘nicode绫诲瀷瀛楃涓茬殑鍑芥暟 v1=''for a in value:if type(a)=='unicode':v1=v1+str(a.encoe('gb18030'))else:v1=v1+str(a)return v1 print processunicode(export) #鎶婅鎵撳嵃鐨勫弬鏁颁紶缁欒鍑芥暟锛屽苟鎵撳嵃鍑烘潵 ...
  • python,濡備綍閬嶅巻涓涓鐩綍,杈撳嚭鎵鏈夋枃浠跺悕
    绛旓細import osdef iterbrowse(path): for home, dirs, files in os.walk(path): for filename in files: yield os.path.join(home, filename)for fullname in iterbrowse("/home/bruce"): print fullname
  • python璇诲彇鎸囧畾鐩綍涓墍鏈夋枃鏈枃浠剁殑绗竴琛,骞朵互姝や负璇ユ枃鏈枃浠跺悕閲嶅懡鍚...
    绛旓細import os os.listdir("")#閬嶅巻褰撳墠鐩綍鏂囦欢 os.rename(鈥滆佹枃浠垛濓紝鈥滄柊鏂囦欢鈥)渚:http://zhidao.baidu.com/question/121607089.html 璇 aa=os.open("鏂囦欢","r")aa.next()aa.close()#鍏抽棴鎵撳紑鏂囦欢 浠g爜:coding=utf-8 import os ul=r"C:\xxx\xxx\xxx\aaa"#鎴戠殑鏂囦欢鍦╝aa鏂囦欢澶逛笅 file...
  • Python鐨勪腑鏂瀛楃涓閬嶅巻闂
    绛旓細windows鐨刢ommand鐨勯粯璁ゆ槸cp936锛屼篃灏辨槸gbk锛屼竴涓涓枃瀛楃鏄袱涓瓧锛屾墍浠ヤ袱涓瓧涓や釜瀛楀湴璇銆傝繕鏈夊彟涓绉閬嶅巻鐨勬柟娉曪紝鎶婂瓧绗︿覆杞崲鎴恥nicode锛岃繖鏍蜂腑鏂囪嫳鏂囬兘鏄竴涓瓧锛屽氨鍙互鐢ㄤ綘鐨刦or i in a鐨勬柟娉曢亶鍘嗕簡銆傝繖涓殑濂藉鏄腑鏂囪嫳鏂囧瓧绗﹂兘鏄竴涓瓧锛岃寀tf-8鍜実bk閲岋紝鑻辨枃瀛楁瘝鍙崰涓涓瓧銆
  • 鐢≒ython璇诲叆瑙勫畾鐩綍涓嬬殑txt鏂囦欢涓殑閮ㄥ垎鍐呭
    绛旓細filename: test.py import os users = [] # 鐢ㄦ潵淇濆瓨浠庢枃浠朵腑璇诲彇鐨勬暟鎹 for item in os.listdir('.'): # 閬嶅巻鎸囧畾鐩綍 if os.path.isfile(item) and item.endswith('.txt'): # 鍒ゆ柇鏄惁涓.txt鏂囦欢 f = open(item) # 鎵撳紑鏂囦欢 for line in f: # 璇诲叆鏂囦欢鐨勬瘡涓琛 if line.starts...
  • python濡備綍璇诲彇鏂囦欢鐨勫唴瀹
    绛旓細import pandas as pd 鑾峰彇鏂囦欢鐨勫唴瀹 def get_contends(path):with open(path) as file_object:contends = file_object.read()return contends 灏嗕竴琛屽唴瀹瑰彉鎴愭暟缁 def get_contends_arr(contends):contends_arr_new = []contends_arr = str(contends).split(']')for i in range(len(...
  • 扩展阅读:pythonforin遍历字符串 ... python遍历循环和无限循环 ... python读取文件目录 ... python遍历目录和子目录 ... python遍历目录文件 ... python for循环遍历字典 ... python初学编程必背 ... python遍历目录下文件 ... python切换目录到指定目录 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网