Python如何重新加载.py文件而不是.pyc文件?

时间:2015-09-02 20:29:51

标签: python

我在python中创建一个脚本,将代码写入四个变量中的.py文件(例如x = 6)。问题是当我导入它以使用变量然后写一些代码到它我需要使用reload()来刷新导入我quess并允许我使用变量但它不会重新加载.py文件它只会重新加载.pyc文件。

下载一些代码来帮助(不太确定它会:/)

我调用一个函数将数据写入.py文件,然后调用一个函数重新加载模块,但最终重新加载.pyc

make(2, "name", "'Bob'")

def re(module):
        reload(module)
        print"Reloaded "+ str(module)


def make(0-1-2, var, data):
    if 0-1-2 == 1:
        TempF.write(var+" = "+data)
        TempF.write("\n")
        re(Temp)

    if 0-1-2 == 2:
        PermF.write(var+" = "+data)
        PermF.write("\n")
        re(Perm)

    if 0-1-2 == 0:
        MiscF.write(var+" = "+data)
        MiscF.write("\n")
        re(Misc)


    Reloaded <module 'Perm' from 'C:\Users\Admin\PycharmProjects\DeanRobbieRowe\Perm.pyc'>

1 个答案:

答案 0 :(得分:0)

写完后尝试使用文件对象的.flush()方法。

所以:

make(2, "name", "'Bob'")

def re(module):
        reload(module)
        print"Reloaded "+ str(module)


def make(0-1-2, var, data):
    if 0-1-2 == 1:
        TempF.write(var+" = "+data)
        TempF.write("\n")
        TempF.flush()
        re(Temp)

    if 0-1-2 == 2:
        PermF.write(var+" = "+data)
        PermF.write("\n")
        PermF.flush()
        re(Perm)

    if 0-1-2 == 0:
        MiscF.write(var+" = "+data)
        MiscF.write("\n")
        MiscF.flush()
        re(Misc)

请参阅: what exactly the python's file.flush() is doing?