python - 如何从另一个 python 文件导入和获取变量?
问题描述
主文件是aaa.py,代码如下:
import os,time
from get_newest_folder import *
def main_test():
print(newest_folder)
print(path)
if __name__ == '__main__':
get_n_folder()
main_test()
另一个文件是get_newest_folder.py,代码如下:
import os
def get_n_folder():
path = 'D:\\Test'
os.chdir(path)
files = sorted(os.listdir(os.getcwd()), key=os.path.getmtime)
newest_folder = files[-1]
return (path, newest_folder)
if __name__ == '__main__':
get_n_folder()
我正在尝试在 aaa.py 中使用 get_newest_folder.py 中的变量“path”和“newest_folder”,所以我导入了“get_newest_folder”。但我无法获取(打印)aaa.py 中的 2 个变量。当我运行 aaa.py 时,它显示如下错误消息:
NameError:名称'newest_folder'未定义
有人可以更正我的代码或给我一些建议吗?非常感谢。
解决方案
为了访问 latest_folder 和 path,您必须在 get_newest_folder.py 中将它们声明为全局并将这些变量导入 aaa.py。它们目前是局部变量。
但这不是处理事情的理想方式。可能你需要这样的东西
import os,time
from get_newest_folder import *
def main_test():
_path, _newest_folder = get_n_folder()
print(_path)
print(_newest_folder)
if __name__ == '__main__':
main_test()
推荐阅读
- ios - 为什么 Appstore 一直要求我提供 NSCalendarsUsageDescription,即使我已经在我的 plist 中提供了 NSCalendarsUsageDescription?
- python - TTypeError:(“-:'str'和'float'的不支持的操作数类型”,'发生在索引FFT峰值(Hz)')
- python - 在 cx-Freeze 之后,QPrinter 看不到任何打印机
- mathjax - 在 xaringan 幻灯片中禁用 MathJax 方程参考链接
- html - 是否可以更改博客中的主题结构
- virtual-machine - 我如何使用 libvirt 获得 virtio-serial 的 pts 编号(/dev/pts/[X])?
- r - 在代码块中组合管道函数
- shell - 如何使用 shell 脚本从输出中获取特定值?
- java - 为什么不使用静态 void main 方法,而是使用非静态方法
- python - Python 元编程:使用类型注释生成函数签名