python中由于中文路径引起的os.path.isfile(imgpath) == False问题

昨天在用python脚本处理文件的时候,遇到了题述问题,明明文件时存在的,但是在用os.path.isfile(imgpath) == False进行判断的时候总是成立,在一开始以为是正反斜杠windows与linux不同导致的,后来发现时因为中文路径造成的。

在网上查阅了解决办法如下:

imgpath = unicode(imgpath, "utf8")

利用上述语句将imgpath的编码进行转换,然后再进行判断以及后续的图片读取(使用cv2模块)就都没有问题了。

时间: 2024-08-09 19:47:35

python中由于中文路径引起的os.path.isfile(imgpath) == False问题的相关文章

在Python中处理中文路径

最近在Windows下使用Python进行Swift API的开发,其中对象(相当于文件)上传和下载会涉及到中文路径,可是纠结了好长时间,总是提示路径不存在,后来经过多方查找资料和咨询,终于找到问题所在.对文件路径需要使用Unicode编码: local_path = unicode(local_path, 'utf8) file = open(local_path, 'rb') 文章出自:http://blog.csdn.net/twlkyao/article/details/26715443

Python标准库03 路径与文件 (os.path包, glob包)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 路径与文件的简介请参看Linux文件系统 os.path包 os.path包主要是处理路径字符串,比如说'/home/vamei/doc/file.txt',提取出有用信息. import os.path path = '/home/vamei/doc/file.txt' print(os.path.basename(path)) # 查询路径中包含的文件名 print(os.p

python----ftplib中遇到中文路径错误问题

python----ftplib中遇到中文路径错误问题 笔者在写一个简易的ftp程序的时候. 遇到返回提示说找不到FTP上的路径. 但是路径肯定时没错的. 而且当路径变成普通的不含中文的路径的时候,就是正常的. 下面是笔者的代码 #!/usr/bin/python3 #-*- coding: utf-8 -*- from ftplib import FTP import sys,time,os,hashlib #定义时间 sys_time = time.time() sys_time_array

python学习笔记24(路径与文件 (os.path包, glob包))

os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法. >>> import os.path >>> path = '/home/ethon/doc/file.txt' >>> os.path.abspath(path) # 返回path规范化的绝对路径 'C:\\home\\ethon\\doc\\file.txt' >>> os.path.split(path) # 将path分割成目录和文件名二

在Python中以绝对路径或者相对路径导入文件(或模块)的方法

在Python中以相对路径或者绝对路径来导入文件或者模块的方法 相对路径和绝对路径的概念 绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件. 相对路径就是以当前文件为基准进行一级级目录指向被引用的资源文件. 以下是常用的表示当前目录和当前目录的父级目录的标识符    ../ 表示当前文件所在的目录的上一级目录 ./ 表示当前文件所在的目录(可以省略) / 表示当前站点的根目录(域名映射的硬盘目录)  在Python中可以验证一下上述的标识方法: 测试的目录

sae python中Mysql中文乱码的解决

一开始我用的是: db=MySQLdb.connect(db=sae.const.MYSQL_DB,user=sae.const.MYSQL_USER,passwd=sae.const.MYSQL_PASS,host=sae.const.MYSQL_HOST,port=int(sae.const.MYSQL_PORT)) 数据库编码与python代码的编码都已设为utf8,在PHPMyAdmin中添加中文记录,在网页查询显示中却显示乱码,我在网上各种搜索都找不到解决方法.最后终于发现在连接数据库

c++中sqlite中文路径创建数据库失败的问题

 sqlite3里面使用的是utf-8的编码,所以在创建数据库的时候若果路径是纯英文字母和数字的话,那么多ansii和utf-8编码是一样的,这个时候sqlite3_open函数的调用完全没问题.但是如果是中文的话asnsii直接转化为Utf-8就会出错, 找不到路径,从而创建或者打开数据库失败.解决的方法如下: //sdk中可以直接从UNICODE转为utf-8,不能直接从ansii转为utf-8 //所以 Ansii要转为Utf-8, 需要先转为UNICODE 再转为utf-8 void U

python基础第十八章-------------路径模块:os.path

路径模块:os.path 导包:import os abspath(路径·):将相对路径转换成绝对路径(路径可以随便写) import os# res=os.path.abspath('1.py')# print(res)会输出:D:\SZC\1.py basename(路径):获取路径的主体部分(路径可以随便写) # res=os.path.basename('D:\\SZC\\2.py')# print(res)会输出:2.py dirname(路径):获取路径的路径部分(路径可以随便写)

【Python】os.path.isfile()的使用方法汇总

方法一: 1 # -*- coding:utf-8 -*- 2 import os 3 import sys 4 from uiautomator import device as d 5 6 filepath = r'E:\Project\A3A_8_4G\exercise\app_list\hello.apk' 7 8 if os.path.isfile(filepath): 9 print "true" 10 else: 11 print "false" 总结