我有这个python脚本创建一个主文件夹,然后每次运行时写一个新文件#.log。
import os
os.makedirs(os.path.expanduser('~/logs'), exist_ok=True)
os.chdir(os.path.expanduser('~/logs'))
filenumber = 0
while (os.path.isfile("{0}.log".format(filenumber))):
filenumber = filenumber + 1
log = open('{0}.log'.format(filenumber), mode='a', encoding='utf-8')
log.close
print("Log succesfully saved as {0}".format(log.name))
奇怪的是,程序正常进行并输出以下内容(我运行了几次)
pi@raspberrypi ~/clockpi $ sudo python3 filetest.py
Log succesfully saved as 6.log
pi@raspberrypi ~/clockpi $ sudo python3 filetest.py
Log succesfully saved as 7.log
pi@raspberrypi ~/clockpi $ sudo python3 filetest.py
Log succesfully saved as 8.log
pi@raspberrypi ~/clockpi $
但我的Raspberry Pi上的〜/ log目录中没有任何内容。更奇怪的是,通过复制粘贴到Python解释器中执行相同的脚本会产生以下内容
>>> import os
>>>
>>> os.makedirs(os.path.expanduser('~/logs'), exist_ok=True)
>>> os.chdir(os.path.expanduser('~/logs'))
>>> filenumber = 0
>>> while (os.path.isfile("{0}.log".format(filenumber))):
... filenumber = filenumber + 1
... log = open('{0}.log'.format(filenumber), mode='a', encoding='utf-8')
File "<stdin>", line 3
log = open('{0}.log'.format(filenumber), mode='a', encoding='utf-8')
^
SyntaxError: invalid syntax
>>> log.close
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'log' is not defined
>>> print("Log succesfully saved as {0}".format(log.name))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'log' is not defined
但〜/ log文件夹是正常创建的。有人可以向我解释为什么脚本不能按预期工作以及我如何解决它?谢谢你的时间。
答案 0 :(得分:0)
您可以尝试在不使用sudo的情况下运行程序。
我猜你在使用sudo
命令时,你会进入超级用户的上下文,该用户拥有与当前用户不同的主目录,因此你会看到在{ {1}}。