如何制作可以使用文件打开的程序?(Python)



我正在制作一个程序,可以打开文件并为其做一些事情,我想知道是否有一种可以单击文件的方法,它会在该程序不是进入程序,单击打开并通过文件导航,或者只是您可以单击"与...打开..."并选择程序的方式。如果有帮助,这是代码:

from tkinter import *
from tkinter import filedialog
from subprocess import *
import os
root = Tk()
root.title("Snake converter")
def open_file():
    filename = filedialog.askopenfilename(filetypes = (("Snake files", "*.sim"),("Python Files", "*.py"),("All files", "*.*")))
    filenametmp = filename + ".tmp"
    print filename + " is being compiled. Please wait..."
    tf = open(filenametmp, "a")
    f = open(filename, "r")
    filecontents = f.read()
    tf.write("from simincmodule import *" + "n")
    tf.write(filecontents)
    os.chdir("C:SnakeinfoScripts")
    print os.getcwd()
    call(["pyinstaller", filenametmp])
    os.remove("C:/Snake/info/Scripts/build")
    f.close()
    tf.close()
    print "nn----------------------------------------------------------------------nnFinished compiling " + filename + ". Find the program under [filename]/[filename].exe"
openbutton = Button(root, text = "Open", width = 10, command = open_file)
openbutton.pack()
root.mainloop()

任何帮助或建议都将不胜感激。

谢谢!

"使用...打开"通常将文件的路径名发送到sys.argv。因此,在您程序的适当位置,添加此信息:

if len(sys.argv) > 1:
    open_file(sys.argv[1])

(正如我在评论中所说的那样,您真的想让您的open_file参观,并具有open_file_dialog之类的另一个功能来打开对话框。)

一开始就留下一个问题,即如何制作您可以"打开..."的问题。如果您在Windows上,则应该能够通过编辑注册表来通过文件关联实现更优质的控制:有关详细信息,请参见此MSDN页面。

另外,一种快速的方法是制作一个.bat脚本,该脚本进行参数并将其传递给您的Python程序。我记得一段时间以前这样做,但是我已经很长时间没有认真使用Windows,所以我无法告诉您如何立即写下脚本。

我是Autohotkey工具和python launguages的粉丝,

另一种做法的方法是:

如果要运行程序,然后想用文件打开它("与...打开")

您可以考虑,

用键盘快捷键制作自己的计算机运动脚本。

步骤1:在Windows系统上安装(Python27)。单击此处

步骤2:然后安装Python软件包-Pyautogui和Pywinauto

您可以使用此MSDOS批处理脚本:

install.bat

C:Python27scriptspip.exe install pyautogui
pause
C:Python27scriptspip.exe install pywinauto
pause

现在您准备好制作和使用此Python脚本:

example1.pyw

#run Notepad with "Open..." 
#######################
import pywinauto
pywinauto.Application().start(r"C:WindowsSystem32Notepad.exe c:testtest.txt")
#######################

example2.pyw

#run Notepad
#######################
import pywinauto
pywinauto.Application().start("C:WindowsSystem32Notepad.exe")
#######################

#Open a File - "Open With..." 
#######################
import pyautogui
import time
time.sleep(2)
pyautogui.hotkey('ctrl','o') #Many Programs use Shortcut Ctrl+o to "Open With..." 
time.sleep(.750)
pyautogui.typewrite('c:\test\test.txt',0)
time.sleep(2)
pyautogui.hotkey('enter')
#######################
# you can send any text or Keyboard Shortcuts Combinations - Example Copy - pyautogui.hotkey('ctrl', 'c')

注意:如果您使用typewrite命令使用文件路径 - 不能放置(单个后斜线),则必须将其替换为(double backslash \)

提示:Python语言以及AutopyThonLauncher软件是一个很好的组合 - 如果您想制作,Windows桌面上的工具栏 - 可执行的图片,带有用于鼠标或触摸设备的Python脚本。 - 有关更多信息,请查看主页

我将如何做:

  1. 做到这一点,以便您的程序从stdin读取并写入stdout
  2. 使用外壳的力量。如果您在Unix外壳中,只需做 cat infile | ./python myProgram.py > outfile

这将使您在stdin上的程序中将infile的内容提供给您的程序,然后将STDOUT的输出写入outfile

相关内容

  • 没有找到相关文章

最新更新