如何解决为什么我的代码在 python2 中运行而不是在 python3 中运行
import os
import time
CONSOLE = "/dev/tty0"
logfd = None
def log_me(logstr):
global logfd
global CONSOLE
print(time.strftime("%c")+": "+logstr)
if not logfd:
if not os.path.exists(CONSOLE):
return
logfd = open(CONSOLE,"a")
if not logfd:
return
logfd.write(logstr+"\n")
logfd.flush()
return
test.py
from consolelog import log_me
print ("Hello World!")
log_me("This is a Hello World script")
log_me("Logging 2nd time to see how it works.")
log_me("loging 3rd time")
同样的代码在与 python2 一起使用时可以工作,但在与 python3 一起运行时抛出错误 29 非法搜索
[root@869ebe33-77e8-41b4-918b-eafda978fd98 ~]# python test.py
你好世界!
2021 年 4 月 14 日星期三 07:37:03:这是一个 Hello World 脚本
2021 年 4 月 14 日星期三 07:37:03:第二次记录以查看其工作原理。
2021 年 4 月 14 日星期三 07:37:03:第三次登录
用python3输出
[root@869ebe33-77e8-41b4-918b-eafda978fd98 ~]# python3 test.py
你好世界!
2021 年 4 月 14 日星期三 07:37:10:这是一个 Hello World 脚本
回溯(最近一次通话):
文件“test.py”,第 4 行,在
log_me("这是一个 Hello World 脚本")
文件“/root/consolelog.py”,第 14 行,在 log_me
logfd = open(CONSOLE,"a")
OSError: [Errno 29] 非法搜索
解决方法
python3.x append 不适用于 open(/dev/tty0) 所以我们必须使用 write 而不是 append。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。