是否在启动时运行python脚本以打开终端?

2024-07-04 07:52:42 发布

您现在位置: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,lon, and alt as variables
        report = gpsd.next() 
        if report['class'] == 'TPV':
            if getattr(report,'lat',0.0)!=0:
                lat1 = str(getattr(report,'lat',0.0))
            if getattr(report,'lon',0.0)!=0:
                lon1 = str(getattr(report,'lon',0.0))
            if getattr(report,'alt','nan')!= 'nan':
                alt1 = str(getattr(report,'alt','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") 

Tags: csv代码importreport脚本counterfilecamera
1条回答
网友
1楼 · 发布于 2024-07-04 07:52:42

如果您使用的是窗口管理器,那么您可以在.xinitrc中添加python filename.py &,它将开始执行在该脚本中编写的任何内容

如果使用任何桌面环境,那么它会附带一个默认的显示管理器,该管理器也会执行相同的操作。每个显示管理器都有自己的自动启动方式

我建议在登录时启动它,而不是在启动时启动

相关问题 更多 >

    热门问题