如何在Python代码中创建可运行的.py文件?not writable报错如何解决
错误原因
open()函数默认使用r(只读)模式打开文件,该模式仅支持读取操作,调用write()写入内容时就会触发io.UnsupportedOperation: not writable报错。
修复方法
基础修复
直接在open的第二个参数指定写入模式即可,普通覆盖写入用w模式,文件不存在时会自动创建,文件已存在时会清空原有内容后写入:
def makeFile(): # \n 代表换行符,\t 代表制表符,写入文件时会自动转换为对应格式 contents = "import JustIRC\nimport requests\n\ndef run():\n\tprint('程序正常运行')" # 指定w写入模式,补充encoding参数避免跨系统编码乱码 file = open('py.py', 'w', encoding='utf-8') file.write(contents) file.close()
更稳妥的写法(推荐)
使用with上下文管理器操作文件,不需要手动调用close(),就算代码运行出现异常也会自动关闭文件,避免资源泄露:
def makeFile(): contents = "import JustIRC\nimport requests\n\ndef run():\n\tprint('程序正常运行')" with open('py.py', 'w', encoding='utf-8') as file: file.write(contents)
换行、制表符说明
Python字符串内的转义符会直接被正确写入文件:
\n对应换行符,用于实现代码的换行\t对应制表符,用于实现Python要求的缩进格式,保证生成的代码语法合法可运行
内容的提问来源于stack exchange,提问作者xiqi1949
相关产品推荐
相关产品推荐

