用于确保文件名始终有效-现在在Python3中也是如此

goldfinch的Python项目详细描述


关于

goldfinch是一个简单的包,它从文件名中删除无效的文件名字符。传入字符串或Unicode(包含或不包含无效字符)并获取返回的有效文件名(作为Unicode)。

通常,goldfinch会删除无效的文件名字符,如<;gt;:“/?”*以及0-255字符集以上的字符。默认设置是尝试使用“unicodedata”转换为ascii字符。

安装

pip安装goldfinch 或 易于安装-u goldfinch

为什么使用金翅雀

这个包唯一的真正用途是动态创建文件名,并且无法知道作为文件名传递的确切内容。我发现当我刮网站的时候它特别有用。

所以,不要这样:
>>> fileName = 'this is a filename with some invalid characters in it <>:"/\|?*'
>>> file = open(fileName,"w")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: 'this is a filename with some invalid characters in it <>:"/\\|?*'
执行此操作:
>>> from goldfinch import validFileName as vfn
>>> fileName = 'this is a filename with some invalid characters in it <>:"/\|?*'
>>> file = open(vfn(fileName),"w")

示例

规范化文件名时,有三个(空格、initcap和ascii)选项可用。

默认值为“space=”下划线“,initcap=true,ascii=true”。

  • 对于空格,选项是下划线、删除和保留。默认值是下划线,它将用下划线(\u)替换空格。
  • initcap是一个true&false选项。如果为true,则默认情况下会将单词中的第一个字符转换为大写,并保留所有其他字符为小写。
  • ascii也是一个true&false选项。同样正确的是默认值,它将把这个____转换成这个aaaao。False将保持字符原样。
使用默认设置:
>>> fileName = 'THIS IS a filename with ÅåÄäÖ some characters that will not work like these: <>:"/\|?*'
>>> vfn(fileName)
'This_Is_A_Filename_With_Aaaao_Some_Characters_That_Will_Not_Work_Like_These'
默认使用Unicode输入:
>>> fileName = u'THIS IS a filename with ÅåÄäÖ some characters that will not work like these: <>:"/\|?*'
>>> vfn(fileName)
'This_Is_A_Filename_With_Aaaao_Some_Characters_That_Will_Not_Work_Like_These'
如果initcap=false:
>>> vfn(fileName, initCap = False)
'THIS_IS_a_filename_with_AaAaO_some_characters_that_will_not_work_like_these_'
带空格='remove':
>>> vfn(fileName, space = 'remove')
'ThisIsAFilenameWithAaaaoSomeCharactersThatWillNotWorkLikeThese'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
eclipse如何在Java中定义main(String[]args)而不出现警告和错误?   java获取正则表达式匹配后的文本   java什么是Gradle深度解释中的buildbyconvention?   java不允许用户更改文本字段   java为aws lambda中的代码生成swagger文件   Android java。网UnknownHostException:主机未解析:服务器地址:443   java onBackPressed()完成我的活动   电子邮件中的java语言环境   面向匿名用户的java Tomcat/spring会话管理   java在参考资料中添加docx文件并创建可执行jar   plsql使用Java执行plsql   使用lambda表达式更新嵌套列表:Java 8   静态数据的java短期与长期