如何解决无论如何要在启动时运行打开终端的python脚本?
您好,我在启动时运行 python 脚本时遇到了困难,该脚本请求用户在终端中输入以命名目录。 python脚本要求一个文件名,然后创建一个目录和csv文件,以在csv代码中存储图片和每张图片的信息,例如GPS数据。当我在 Geany 中运行它时,我的代码工作正常,但我已经尝试了所有可以想象的方式在启动时启动代码。如果我将 direcname = str(input("name your file: "))
更改为 direcname=str("file_name")
,代码将起作用。我花了几天时间试图解决这个问题,我找不到一种在启动时打开终端的方法,它适用于我的脚本。
#import packages
from gpiozero import Button,LED
from picamera import PiCamera
import os
import datetime
from gps import *
#define gpio pins and variables
pwd = os.getcwd()
camera = PiCamera()
led = LED(13)
previewbtn = Button(26,hold_time=2)
counter = 1
#GPS stuff
gpsd = gps(mode=WATCH_ENABLE|WATCH_NEWSTYLE)
#make new directory and create text file within
direcname = str(input("name your file: "))
newpath = pwd + '/' + direcname
os.makedirs(newpath)
txtfile = open(newpath + '/' + direcname + '.csv','w+')
txtfile.write('img,date/time,lat,lon,alt(m)')
txtfile.close()
#define functions
def capture():
global counter
camera.capture(newpath + '/' + direcname + str(counter) + '.jpg')
txtfile = open(newpath + '/' + direcname + '.csv','a')
txtfile.write("\n")
txtfile.write( direcname + str(counter) + ',' + str(datetime.datetime.now()) +
',' + lat1 + ',' + lon1 + ','+ alt1)
txtfile.close()
counter += 1
#run function
try:
while True:
#Setting lat,and alt as variables
report = gpsd.next()
if report['class'] == 'TPV':
if getattr(report,'lat',0.0)!=0:
lat1 = str(getattr(report,0.0))
if getattr(report,'lon',0.0)!=0:
lon1 = str(getattr(report,'alt','nan')!= 'nan':
alt1 = str(getattr(report,'nan'))
else:
lat1 = "ERROR"
lon1 = "ERROR"
alt1 = "ERROR"
#Everything else
led.source = previewbtn
previewbtn.when_pressed = camera.start_preview
previewbtn.when_held = capture
previewbtn.when_released = camera.stop_preview
except(KeyboardInterrupt,SystemExit):
print("Done.\nExiting")
解决方法
如果您使用的是窗口管理器,那么您可以在 pyinstaller --onefile file.py
中添加您的 python filename.py &
,它开始执行该脚本中编写的任何内容。
如果使用任何桌面环境,那么它带有一个默认的显示管理器,它可以做同样的事情。每个显示管理器都有自己的自动启动方式。
我建议在登录时启动它,而不是在启动时启动。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。