相关疑难解决方法(0)

如何在其默认程序中启动文件,然后在脚本完成时关闭它?

摘要

我有wxPython GUI,允许用户打开文件进行查看.目前我这样做os.startfile().但是,我已经知道这不是最好的方法,所以我希望改进.主要的缺点startfile()是,一旦启动文件,我就无法控制文件.这意味着用户可以将文件保持打开状态,以便其他用户无法使用.

我正在寻找什么

在我的GUI中,可以有子窗口.我通过将GUI对象存储在列表中来跟踪所有这些,然后当父对象关闭时,我只是遍历列表并关闭所有子对象.我想对用户选择的任何文件执行相同操作.如何启动文件并保留python对象,以便我可以在命令中关闭它?提前致谢

我的解决方案的梦想

  • 以这样一种方式启动文件,即我可以在函数之间传递一个Python对象
  • 某种方式在其默认程序中启动文件并返回PID
  • 一种使用文件名检索PID的方法

进展到目前为止

这是我计划使用的框架.最重要的位是run()end()该功能FileThread类,因为这是在解决方案会去.

import wx
from wx.lib.scrolledpanel import ScrolledPanel 
import threading
import os

class GUI(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'Hey, a GUI!', size=(300,300))
        self.panel = ScrolledPanel(parent=self, id=-1) 
        self.panel.SetupScrolling()  
        self.Bind(wx.EVT_CLOSE, self.OnClose)

        self.openFiles = []

        self.openBtn = wx.Button(self.panel, -1, "Open a File")
        self.pollBtn = wx.Button(self.panel, -1, "Poll")
        self.Bind(wx.EVT_BUTTON, self.OnOpen, self.openBtn)
        self.Bind(wx.EVT_BUTTON, self.OnPoll, self.pollBtn)

        vbox = wx.BoxSizer(wx.VERTICAL)

        vbox.Add((20,20), 1)
        vbox.Add(self.openBtn)
        vbox.Add((20,20), 1)
        vbox.Add(self.pollBtn)
        vbox.Add((20,20), …
Run Code Online (Sandbox Code Playgroud)

python windows shell subprocess popen

13
推荐指数
1
解决办法
2509
查看次数

如何用python打开一个mp4文件?

我试图制作一个使用默认 Windows 应用程序播放电影的脚本,但是当我尝试运行它时出现错误:强制转换为 Unicode:需要字符串或缓冲区,找到函数

我应该如何处理这个问题?

import os

print 'Push "enter" to play movie'
raw_input()

def filename():
   filename = movie.mp4
   os.system("start " + filename)

open(filename)
Run Code Online (Sandbox Code Playgroud)

python

6
推荐指数
1
解决办法
2万
查看次数

使用Python启动Excel文件

当我尝试时 os.system("open " + 'myfile.xlsx')
我得到输出'0'

类似地,尝试
os.system("start excel.exe myfilepath")
给出结果 32512

我已经导入了操作系统和系统,并且在Mac上。如何更改此设置,以使其确实启动该excel文件?出于好奇,它打印出的数字是什么意思?

谢谢!

python macos excel launch

2
推荐指数
4
解决办法
1万
查看次数

标签 统计

python ×3

excel ×1

launch ×1

macos ×1

popen ×1

shell ×1

subprocess ×1

windows ×1