程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么我的代码在 python2 中运行而不是在 python3 中运行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决为什么我的代码在 python2 中运行而不是在 python3 中运行?

开发过程中遇到为什么我的代码在 python2 中运行而不是在 python3 中运行的问题如何解决?下面主要结合日常开发的经验,给出你关于为什么我的代码在 python2 中运行而不是在 python3 中运行的解决方法建议,希望对你解决为什么我的代码在 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,请注明来意。