MyCollege1999 2024-05-13 18:11 采纳率: 73.3%
浏览 5
已结题

python中如何访问其他文件夹文件中的变量?


#a.py,   在目录 /opt/test/code下

serial_port = ' '
def main():
    serial_port  = '/dev/ttyUSB0'


#b.py 在目录/opt/teletest/tools下
def serial_init():
    portName =                  #此处想获得a.py里的serial_port, 我尝试了几次imprt a里的serial_port,没有成功。。。。。。。。
    print('serport is', portName)
    try:
        ser = serial.Serial(portName)
    except:
        portName = "/dev/ttyS0"
        ser = serial.Serial(portName)
    ser.baudrate = 115200
    ser.timeout = 2
    return ser

尝试的代码:

#b.py
import sys
sys.path.append(r"/opt/test/code")
from a import serial_port

def serial_init():
    portName = serial_port                 #此处想获得a.py里的serial_port, 我尝试了几次imprt a里的serial_port,没有成功。。。。。。。。
    print('serport is', portName)         #打不出来  /dev/ttyUSB0, 还是 ‘  ’
    try:
        ser = serial.Serial(portName)
    except:
        portName = "/dev/ttyS0"
        ser = serial.Serial(portName)
    ser.baudrate = 115200
    ser.timeout = 2
    return ser
  • 写回答

3条回答 默认 最新

  • 关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    由于你的两个 python 文件放在了不同的目录下,所以需要将 /opt/test/code 目录添加到 sys.path,使用绝对路径或相对路径引入 a.py 文件,最后才能够获取 a.py 文件中的变量。

    下面是解决方案:

    1. 将 /opt/test/code 目录添加到 sys.path 中,代码如下:
    import sys
    sys.path.append('/opt/test/code')
    
    1. 使用相对路径或绝对路径来引入 a.py 文件,代码如下:
    • 相对路径:
    from ..code.a import serial_port
    
    • 绝对路径:
    from /opt/test/code.a import serial_port
    
    1. 使用获取到的 serial_port 变量,代码如下:
    portName = serial_port
    

    修改后的正确代码如下:

    import sys
    sys.path.append('/opt/test/code')
    from ..code.a import serial_port
    import serial
    
    def serial_init():
        portName = serial_port    
        print('serport is', portName)    
        try:
            ser = serial.Serial(portName)
        except:
            portName = "/dev/ttyS0"
            ser = serial.Serial(portName)
        ser.baudrate = 115200
        ser.timeout = 2
        return ser
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 创建了问题 5月13日

悬赏问题

  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用