首页 > 解决方案 > Python execfile不打印,不打印变量中的值

问题描述

我有文件 mikrotik.py

'ip route add dst-address={}/{} gateway={}'.format(destination,prefix,gateway)

这是一些代码

import os
    localfilepath = os.getcwd()
    staticDir = localfilepath+"/website/plugin/config/routing/static/"
    vendors = staticDir+"MIKROTIK.py"
    destination = 192.168.2.0
    prefix = 24
    gateway = 192.168.1.1
    x = execfile(vendors)
    print x

结果是

None

我想要的结果是

ip route add dst-address=192.168.2.0/24 gateway=192.168.1.1

当我使用

x = open(vendors)
print x

结果是

'ip route add dst-address={}/{} gateway={}'.format(destination,prefix,gateway)

提前致谢

所以最后我使用 eval(x)

结果是 ip route add dst-address=192.168.2.0/24 gateway=192.168.1.1,我不知道它是不是最好的方法

标签: pythonnetworkingexecfile

解决方案


如果我理解正确,您只需要简单的字符串操作:

import os

destination = 192.168.2.0
prefix = 24
gateway = 192.168.1.1
vendors = 'ip route add dst-address={}/{} gateway={}'.format(destination,prefix,gateway)
print x

如果您真的想将字符串/格式放在单独的文件中,请使用文本文件、json 文件等,但不要使用 .py 文件。

顺便说一句,识别在 python 中很重要。


推荐阅读