Errno 22 invalid mode w+ or filename
1 | IOError: [Errno 22] invalid mode ('w+') or filename: 'hodor_2017-05-09_14:03:38.txt' |
所以我在创建一个文件时遇到了一些问题,文件名为"name"[分隔符]"datetime".txt
我在查找不同的代码位,例如:
将字符串转换为有效的文件名?
python:如何将字符串转换为utf-8
https://github.com/django/django/blob/master/django/utils/safestring.py
但这对我来说仍然不管用。
我的概念很简单:给定一个名称和内容,用这个名称和内容编写一个文件。
我的代码是:
1 2 3 4 5 6 7 | def create_json_file(name, contents): filename = u"%s_%s.json" % (name, datetime.datetime.now().strftime("%Y/%m/%d_%H:%M:%S")) print"%s" % filename filename = slugify(filename) f = open(filename,"w+") f.write(contents) f.close() |
正如你所看到的,我一直在调整它。我正在查找Django使用sligify的结果。
我的原作没有那句台词。也许还有更好的命名方法。我认为名称和日期时间很正常,但我不确定在名称和日期时间等之间应该使用什么分隔符。
据记录,我目前没有使用django,因为我不需要这个框架。我只是想测试一种传递字符串和JSON映射的方法,并将其本质上转换为
最后,我想利用一个网站的Ajax请求来完成这项工作,但这超出了这个问题的范围。
在文件名掩码中使用其他分隔符:
1 | filename = u"%s_%s.json" % (name, datetime.datetime.now().strftime("%Y_%m_%d_%H%M%S")) |
操作系统正在尝试打开2005/04/01_5:45:04.json。文件/目录名中不允许斜杠。
编辑:根据注释删除了冒号。