大佬教程收集整理的这篇文章主要介绍了为什么我的代码在 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。
以上是大佬教程为你收集整理的为什么我的代码在 python2 中运行而不是在 python3 中运行全部内容,希望文章能够帮你解决为什么我的代码在 python2 中运行而不是在 python3 中运行所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。