为了账号安全,请及时绑定邮箱和手机立即绑定

open打开一个字符串变量时提示[Errno 22] Invalid argument

open打开一个字符串变量时提示[Errno 22] Invalid argument

胡说叔叔 2018-10-24 09:44:31
题目描述定义一个变量,它的值是要操作的文件的绝对路径,用open函数打开要操作时提示invalid arguments题目来源及自己的思路用print函数测试发现是没有问题,打印logfile是正常的,但是在open中打开就不正常了。相关代码#! python3# -*- encoding:utf-8 -*-import osimport sysimport timeif os.path.isdir('logs'):    passelse:     os.mkdir('logs') log_path = os.path.join(os.getcwd(),'logs',time.asctime()) logfile = os.path.normcase(log_path) + '.log'with open(logfile,'wb') as lf:     lf.write("test")你期待的结果是什么?实际看到的错误信息又是什么?错误信息:OSError: [Errno 22] Invalid argument: 'e:\python\远程管理\logs\tue sep 18 17:50:23 2018.log'
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

问题出在lf.write("test")这地方,为什么呢?因为你这里的文件打开方式wb,也就是以二进制流或者叫做byte的形式打开,然而你此处lf.write("test")写的是字符串,所以出错了,正确的操作应该是:

lf.write(b"test")

这样子,写入byte类型的字符串。


查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 741 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信