猿问

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

题目描述

定义一个变量,它的值是要操作的文件的绝对路径,用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'


胡说叔叔
浏览 742回答 1
1回答

动漫人物

问题出在lf.write("test")这地方,为什么呢?因为你这里的文件打开方式wb,也就是以二进制流或者叫做byte的形式打开,然而你此处lf.write("test")写的是字符串,所以出错了,正确的操作应该是:lf.write(b"test")这样子,写入byte类型的字符串。
随时随地看视频慕课网APP

相关分类

Python
我要回答