情景:
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即可.