Python 忽略文件名编码的方法

 更新时间:2020年08月01日 10:25:24   转载 作者:David Beazley  
这篇文章主要介绍了Python 忽略文件名编码的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

问题

你想使用原始文件名执行文件的I/O操作,也就是说文件名并没有经过系统默认编码去解码或编码过。

解决方案

默认情况下,所有的文件名都会根据 sys.getfilesystemencoding() 返回的文本编码来编码或解码。比如:

>>> sys.getfilesystemencoding()
'utf-8'
>>>

如果因为某种原因你想忽略这种编码,可以使用一个原始字节字符串来指定一个文件名即可。比如:

>>> # Wrte a file using a unicode filename
>>> with open('jalape\xf1o.txt', 'w') as f:
...  f.write('Spicy!')
...
6
>>> # Directory listing (decoded)
>>> import os
>>> os.listdir('.')
['jalapeño.txt']

>>> # Directory listing (raw)
>>> os.listdir(b'.') # Note: byte string
[b'jalapen\xcc\x83o.txt']

>>> # Open file with raw filename
>>> with open(b'jalapen\xcc\x83o.txt') as f:
...  print(f.read())
...
Spicy!
>>>

正如你所见,在最后两个操作中,当你给文件相关函数如 open() os.listdir() 传递字节字符串时,文件名的处理方式会稍有不同。

讨论

通常来讲,你不需要担心文件名的编码和解码,普通的文件名操作应该就没问题了。 但是,有些操作系统允许用户通过偶然或恶意方式去创建名字不符合默认编码的文件。 这些文件名可能会神秘地中断那些需要处理大量文件的Python程序。

读取目录并通过原始未解码方式处理文件名可以有效的避免这样的问题, 尽管这样会带来一定的编程难度。

关于打印不可解码的文件名,请参考

以上就是Python 忽略文件名编码的方法的详细内容,更多关于Python 忽略文件名编码的资料请关注脚本之家其它相关文章!

相关文章

  • python3读取excel文件只提取某些行某些列的值方法

    python3读取excel文件只提取某些行某些列的值方法

    今天小编就为大家分享一篇python3读取excel文件只提取某些行某些列的值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • flask 框架操作MySQL数据库简单示例

    flask 框架操作MySQL数据库简单示例

    这篇文章主要介绍了flask 框架操作MySQL数据库,结合实例形式详细分析了flask框架操作MySQL数据库的连接、表格创建、数据增删改查等相关使用技巧,需要的朋友可以参考下
    2020-02-02
  • python+opencv边缘提取与各函数参数解析

    python+opencv边缘提取与各函数参数解析

    这篇文章主要介绍了python+opencv边缘提取与各函数参数解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Django的用户模块与权限系统的示例代码

    Django的用户模块与权限系统的示例代码

    这篇文章主要介绍了Django的用户模块与权限系统的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 对Python+opencv将图片生成视频的实例详解

    对Python+opencv将图片生成视频的实例详解

    今天小编就为大家分享一篇对Python+opencv将图片生成视频的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python3访问sina首页中文的处理方法

    python3访问sina首页中文的处理方法

    如果用python3的urllib或python2的urllib2访问网页,都不能得到正确的中文字符串,看下面的解决方法
    2014-02-02
  • python自动发邮件总结及实例说明【推荐】

    python自动发邮件总结及实例说明【推荐】

    python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。这篇文章主要介绍了python自动发邮件总结及实例说明 ,需要的朋友可以参考下
    2019-05-05
  • python 利用turtle库绘制笑脸和哭脸的例子

    python 利用turtle库绘制笑脸和哭脸的例子

    今天小编就为大家分享一篇python 利用turtle库绘制笑脸和哭脸的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 利用Python实现Excel的文件间的数据匹配功能

    利用Python实现Excel的文件间的数据匹配功能

    这篇文章主要介绍了利用Python实现Excel的文件间的数据匹配,本文通过一个函数实现此功能,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • python根据时间生成mongodb的ObjectId的方法

    python根据时间生成mongodb的ObjectId的方法

    这篇文章主要介绍了python根据时间生成mongodb的ObjectId的方法,涉及Python操作mongodb数据库的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论