[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即可.
[Python] 中文路径和中文文本文件乱码问题的更多相关文章
- Windows下Python中的中文路径和中文输出问题
这几天有个项目需要写一点类似于脚本的小程序,就用Python写了,涉及到中文路径和中文输出的问题,整理一下. 有一个问题我觉得需要先强调一下,在写Python程序的时候,一定保证编码是utf-8,然后 ...
- GDAL C#中文路径,中文属性名称乱码问题
昨天写的博客,将C#读取shp中文属性值乱码的问题应该可以解决,博客地址为:http://blog.csdn.net/liminlu0314/article/details/54096119,然后又测 ...
- 使GDAL库支持中文路径或中文文件名的处理方法
之前生成的gdal 2.1.1动态库,在通过命令行执行时,遇到有中文路径或中文图像名时,GDALOpen函数不能正确的被调用,如下图: 解决方法: 1. 在所有使用GDALAllRegist ...
- 论 Python Opencv 中文路径及中文文件名图像文件读取的两种方式
python 2中对于中文字符的处理可谓是诟病已久,虽然python 3 使用统一编码解决了中文字符串的问题,但在使用opencv中imread函数读取中文路径图像文件时仍会报错. 1) 借助nump ...
- 【转】让apache支持中文路径或者中文文件
本帖最后由 狂人阿川 于 2013-4-12 19:13 编辑 今天在给一美国VPS客户调试他的程序的时候.发现他的网站有中文名称.貌似apache无法认识中文路径,火狐下面能下载他的文件,IE下面不 ...
- VFS 上传文件到sftp 报错 包含中文路径 或者中文文件名称
之前用Apache commons-vfs工具进行ftp操作(FTP服务器是 FileZilla Server) 上传本地文件 到 ftp服务器上,如果文件名称 包含 中文 报错 org.apache ...
- phpexcel对于中文路径和中文名称的问题(有疑问)
phpexcel对于中文的文件名无法读取(我本地环境都是utf-8的编码) 是不是win系统识别都是gbk ?(需要把utf-8的字符串改为gbk) $file = "C:\\Users\\ ...
- Python入门--番外--中文目录乱码问题
写Python的程序,读取含有中文目录下的文件,结果发现根本读取不了该中文目录下的文件, 原因:通过调试发现:该文件的目录乱码,目录无法解析,自然导致无法读取文件内容 解决方法: strPath = ...
- VS2017编译GDAL(64bit)+解决C#读取Shp数据中文路径的问题
编译GDAL过程比较繁琐,查阅了网上相关资料,同时通过实践,完成GDAL的编译,同时解决了SHP数据中文路径及中文字段乱码的问题,本文以“gdal-2.3.2”版本为例阐述整个编译过程. 一.编译准备 ...
随机推荐
- Python基础--文件操作和集合
这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 ...
- CF808D STL
D. Array Division time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- cf188C(最大子段和&&思维)
C. Functions again time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- GDI+ DrawString字间距问题
/// <summary> /// 绘制任意间距文字 /// </summary> /// <param name= "text "& ...
- OC self注意事项
#import <Foundation/Foundation.h> @interface Person : NSObject - (void)test; + (void)test; - ( ...
- python 绘图 异常点绘制使用 ax.plot(abnormal_points['ds'], abnormal_points['y'], "rX", label='abnormal points')
from matplotlib import pyplot as plt def my_plot(title, m, fcst, ax=None, uncertainty=True, plot_cap ...
- vs2012团队连接(Team Foundation Server)连接不上的怎么办?
项目管理的Team Foundation Server有时总是连接不上,报连接有误或没有权限,那怎么解决呢?
- POJ 3295 Tautology 构造 难度:1
Tautology Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9580 Accepted: 3640 Descrip ...
- EntityFramework 6
3.EF6 3.1初步目录及说明 下面是用VS2013开发环境创建的项目: 说明:控制台项目类型,安装 EF版本为6.1.3 , 数据库连接字符串配置: 隐藏代码 <connectionStri ...
- C#阿里云移动推送列表
C#阿里云移动推送列表 这个就在上期随笔的基础之上,加一个 函数就行了. 简单的. 附上源码:一下代码只要把参数改一下就可以了,中间几个参数 可以灵活修改 /// <summary> ...