首页 > 解决方案 > 从Python中的另一个文件导入变量时的无限循环

问题描述

我有一个名为 main.py 的文件,根据用户输入,我想从文件 export.py 或从文件 import.py 运行代码。这就是我的 main.py 代码的外观:

print("Hi, " + os.getlogin() + "!")
print("Extracting filenames...")
path = input('Tell me the path!\n')
filenames = [x for x in os.listdir(path)]
ID = [f for f in filenames if re.search("(?<=ID)(\d+)", f)]
filestxt = "Files.txt"
idtxt = "ID.txt"
PathFiles = os.path.join(path, filestxt)
PathID = os.path.join(path, idtxt)
file = open(PathFiles, "w+")
file.write('\n'.join(ID))
file.close()
with open(PathID, 'w') as f:
    for item in ID:
        list = re.findall("(?<=ID)(\d+)", item)
        string = ('\n'.join(list))
        f.write("%s\n" % string)


key = input("Export or Import(e/i)?:")
    if key == 'e':
        os.system('python export.py')

当我点击“e”按钮时,Python 正在运行 export.py 中的代码,但是当它到达该行时

from main import PathID

而不是导入以下函数所需的变量

    with open(PathID) as f:
        for line in f:
        ...

main.py 中的代码从一开始就一次又一次地运行,我在控制台中得到以下几行:

"Hi, " + os.getlogin() + "!"
"Extracting filenames..."
'Tell me the path!\n'
"Export or Import(e/i)?:"

我在 export.py 中想要的只是告诉 Python 从我在 main.py 文件中指定的路径中读取 ID.txt 文件。

如何在 export.py 中调用 main.py 中的函数而不会出现这个无限循环?

标签: pythonloopsimport

解决方案


尝试使用

if __name__ == '__main__':

key = input ("Export or Import (e / i) ?:")
     if key == 'e':
         os.system ('python export.py')

或在启动时应始终执行的任何代码之前。


推荐阅读