IOError: [Errno 22] invalid mode ('w+') or filename: 'hodor_2017-05-09_14:03:38.txt'
所以我在创建文件时遇到了问题,因为它是" name" [分隔符]" datetime" .TXT
我正在查找不同的代码,例如:
Turn a string into a valid filename?
python: how to convert a string to utf-8
https://github.com/django/django/blob/master/django/utils/safestring.py
它似乎对我不起作用。
我的概念很简单:给定名称和内容写一个具有该名称和内容的文件。
我的代码是:
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所做的结果,它使用了slugify。
我原来没有那条线。也许还有一种更好的方法来命名文件。我认为名称和日期时间很正常,但我不确定在名称和日期时间之间应该使用哪些分隔符。
为了记录,我目前没有使用Django,因为我不需要框架。我只是试图测试传递字符串和json映射的方法,并将其转换为config.json
文件。
最后,我想利用网站上的AJAX请求执行此操作,但这超出了此问题的范围。
答案 0 :(得分:4)
在文件名掩码中使用不同的分隔符:
filename = u"%s_%s.json" % (name, datetime.datetime.now().strftime("%Y_%m_%d_%H%M%S"))
操作系统正试图打开2005/04 / 01_5:45:04.json。文件/目录名称中不允许斜杠。
编辑:删除冒号以回应评论。