我对load_source有疑问。
当我的2个.py
文件在同一目录/home/pi
,他们工作正常。
卖弄.朋友
#!/usr/bin/python
import buttonlog
button log.朋友
import datetime
i = datetime.datetime.now()
#OPEN FILE & APPEND
f=open('buttonlog.txt','a')
#WRITE DATE THEN NEW LINE WITH THE '\N'
f.write(i.isoformat() + '\n')
当我运行python main.py时,它会像我期望的那样写一个条目。但是,我想将main.py
存储在另一个目录中,所以我尝试了这个,它存储在/home/pi/test
中
#!/usr/bin/python
import imp
imp.load_source('buttonlog', '/home/pi/buttonlog.py')
当我运行python /home/pi/test/main.py
时,我没有得到任何错误,也没有在我的文件中写入一个条目。我究竟做错了什么?
秘密是使用open命令。
正如文档中提到的第一个论点,
file是一个path-like object,给出要打开的文件的路径名(绝对或相对于当前工作目录)或要包装的文件的整数文件描述符。
通过传递"buttonlog.txt"
,这不是一个绝对的路径名,所以它相对于当前的工作目录。
解决此问题的最简单方法是使用完整路径。如果你总是希望它写入/home/pi
,你只需要:
f=open('/home/pi/buttonlog.txt','a')
还有其他选择,但我认为这是最干净的。您还可以在发出相同结果的open命令之前更改当前工作目录。只需将此代码放在open
行上方:
import os
os.chdir("/home/pi")