使用文件路径读取另一个python文件中的.py文件变量[重复]

Posted

技术标签:

【中文标题】使用文件路径读取另一个python文件中的.py文件变量[重复]【英文标题】:Read .py file variables in another python file using the filepath [duplicate] 【发布时间】: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)

【问题讨论】:

看看***.com/questions/67631/… 用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 文件是有原因的。 【参考方案1】:

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

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

例如重命名为 abcfile.py:

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

print(abcfile.li)

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

【讨论】:

以上是关于使用文件路径读取另一个python文件中的.py文件变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从 zip 文件中读取文件并将其写入另一个文件时面临的问题

python读取中文命名的.py文件

Python获取当前脚本文件夹(Script)的绝对路径

python怎么调用另一个路径下py文件的函数

在python项目中使用相对路径读取文件

在python项目中使用相对路径读取文件