python - 如何将另一个python脚本(.py)导入主python文件

标签 python json python-import

有没有一种方法可以将多个python文件导入到主python文件中?

我有一堆py文件,每个文件都必须在主python文件中运行,并将数据保存到json文件中。

这是我尝试过的,它给了我一个错误。

import light.py as light 

错误:
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in  _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/pi/Desktop/majorproject/pillar1.py", line 8, in <module>
import sensorkey.py as sensorkey
ImportError: No module named 'sensorkey.py'; 'sensorkey' is not a package

我也尝试过指定py文件的路径,但该路径也不起作用,并一直给出无效的语法错误。
import /home/pi/Desktop/json/light.py as light

更新:
我设法解决了导入错误,但是现在,在导入此light.py文件之后,我必须将字典(键)中的某些键打印到该新文件中,然后将其导出到json文件中。我目前正在使用TinyDB。这是我的代码:
from tinydb import TinyDB, Query
import json
from light import key

with open("/home/pi/Desktop/json/sensortestest.json", 'w+'):
    db = TinyDB('/home/pi/Desktop/json/sensortestest.json')
    table = db.table('Light')
    db.insert_multiple([{'Key 1' :key[lightkey]}, {'Key 2' : key[lightkeyID]}])

错误:
Traceback (most recent call last):
  File "/home/pi/Desktop/majorproject/testertestest.py", line 12, in <module>
    db.insert_multiple([{'Key 1' :key[lightkey]}, {'Key 2' : key[lightkeyID]}])

NameError:名称“lightkey”未定义

问题是我已经在自己的文件中定义了“lightkey”。

最佳答案

要包含字典,可以在文件位置位于其他目录中时执行此操作(请注意path.append附加为@Coldspeed mentioned):

import sys
sys.path.append("path/foo/bar/")
from light import *

如果与当前目录位于同一目录中,则可以执行以下操作:
from light import *

关于python - 如何将另一个python脚本(.py)导入主python文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44491442/

相关文章:

python - KNN算法实现

javascript - 基于 webkit 的浏览器将 json 解释为脚本

php - 解析数据时出错 org.json.JSONException : Value &lt;! java.lang.String 类型的 DOCTYPE 无法转换为 JSONObject

python - 使用 importlib.import_module 处理导入模块引发的异常

python - 键盘包不适用于 sudo 命令启动

python - Discord.py 无法将消息发送到 cog/扩展文件中的特定 channel

python - 压缩单个文件

python - 如何将列表元素分成两部分?

json - Powershell 两个json内容为什么不一样?

Python 模块导入不起作用