[Python] 中文路徑和中文文本文件亂碼問題


情景:

Python首先讀取名為log.txt的文本文件, 其中包含有文件名相對路徑信息filename.

隨后Python調用shutil.copy2(src, dst)對該filename文件進行復制操作.

由於filename為相對路徑信息, 所以我們需要硬編碼寫入父目錄, 假設為"C:\\源目錄\\", 同時還有目標目錄信息, 假設為"C:\\目標目錄\\".

代碼:

import shutil

def get_file_list(src):
    f = open(src, 'r')
    data = []
    for line in f.readlines():
        if len(line) > 2:
            line = line.replace('\n','')
            line = line.replace('\r','')
            data.append(line.decode('utf8'))
    return data

def copy_file_to(ls, src, dst):
    for f in ls:
        shutil.copy(src + f, dst + f)
    
    
if __name__ == '__main__':
    ls = get_file_list(u"log.txt")
    copy_file_to(ls, u"C:\\源目錄\\", u"C:\\目標目錄\\")

 

問題:

會出現各種編碼出錯, 亂碼.

分析:

情境中, 有兩個編碼:

1. log.txt的編碼

2. python腳本文件的編碼.

如果這兩個編碼不匹配, 就會出現問題.

 

解決方案:

使用Notepad++將兩個文件的編碼都改為utf-8 No BOM即可.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM