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