python - 从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 中的函数而不会出现这个无限循环?
解决方案
尝试使用
if __name__ == '__main__':
前
key = input ("Export or Import (e / i) ?:")
if key == 'e':
os.system ('python export.py')
或在启动时应始终执行的任何代码之前。
推荐阅读
- python - 在我的解决方案中报告错误以查找树的直径
- maven - Intellij Idea 2020 社区版中的 Glassfish 5(Payara 服务器)
- javascript - Javascript Axios如何从函数返回状态404
- kerberos - 为什么 kerberos 集合没有列出有效的主体?
- python - 将 postgres 表导出到 yaml 文件
- python - SQLite 和 Python 的问题
- c# - C# 调用字典
基于从另一个字典返回的值 - python - Instabot 信号仅在主线程中有效
- json - 如何使用 JMeter 中的 JSON 提取器提取 JSON 响应中的嵌套元素
- python - python请求的HTTPS连接错误