【问题标题】:Read .py file variables in another python file using the filepath [duplicate]使用文件路径读取另一个python文件中的.py文件变量[重复]
【发布时间】:2021-06-25 04:48:57
【问题描述】:

考虑到我有两个文件 - abc.pyxyz.py

abc.py 包含以下代码 -

li = [1, 2, 3, 4]
dt = {'m':1, 'n':4, 'o':9}

我想读取文件abc.py 并使用xyz.py 中的python 变量,就像我们使用from abc import li, dt 导入一样。

将提供abc.py 的路径(比如path/to/abc.py),我想导入内容并在xyz.py 中使用它,就像python 变量一样。

以下代码以字符串格式提供内容,虽然我可以进行一些编码并完成工作,但我想概括并寻找更好的方法。另请注意,我发现使用 abc.json 是一个更好的选择,但由于某些原因,我无法将其用于我的目的。

with open(path, "r") as f:
    s = f.read()
    print(s)

【问题讨论】:

  • 用json怎么样? {"li": [1, 2, 3, 4], "dt": {'m':1, 'n':4, 'o':9}}。我认为使用另一个 python 文件中的变量不是最好的主意,而是可以使用 json、xml 等。
  • 您是否有理由访问这样的 .py 文件以获取可变内容? JSON不可用还是?你考虑过csv吗?查看允许将变量传递给 python 脚本的各种类型的配置文件。 martin-thoma.com/configuration-files-in-python
  • 是的,这可能不是最好的主意,但我必须专门使用 .py 文件是有原因的。

标签: python


【解决方案1】:

首先,不要使用 abc.py,因为它会与另一个同名的内置函数发生冲突。

你可以将文件夹添加到sys中,然后导入。

例如重命名为 abcfile.py:

import sys
sys.path.insert(1, folder_path)
import abcfile

print(abcfile.li)

>>> [1, 2, 3, 4]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2021-03-13
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多