Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
双击文件以运行python脚本。如何获取该文件作为输入?_Python_Macos_File_Input_Operating System - Fatal编程技术网

双击文件以运行python脚本。如何获取该文件作为输入?

双击文件以运行python脚本。如何获取该文件作为输入?,python,macos,file,input,operating-system,Python,Macos,File,Input,Operating System,我希望能够创建一个程序,可以保存文本文件与我自己的扩展在最后。稍后,用户应该能够双击该文件来运行程序并打开该文件 我需要知道如何使python程序成为用户双击时打开文件的默认程序,以及如何在程序开始运行时获取该文件 python 2.7 mac os x 10.6和windows 7 编辑: 比如说,我正在制作一个绘画程序。用户希望保存他正在处理的文件。我的程序将其保存为untitled.paint,稍后用户双击untitled.paint并希望我的程序打开该文件 我有没有办法告诉操作系统用我的

我希望能够创建一个程序,可以保存文本文件与我自己的扩展在最后。稍后,用户应该能够双击该文件来运行程序并打开该文件

我需要知道如何使python程序成为用户双击时打开文件的默认程序,以及如何在程序开始运行时获取该文件

python 2.7 mac os x 10.6和windows 7

编辑: 比如说,我正在制作一个绘画程序。用户希望保存他正在处理的文件。我的程序将其保存为untitled.paint,稍后用户双击untitled.paint并希望我的程序打开该文件

我有没有办法告诉操作系统用我的绘图程序打开所有以.paint结尾的文件


我无法将其保存为.jpg,因为这不会保存图层或其他任何内容。

不了解OSX,但在Windows中,您可以按如下方式执行:

  • 创建批处理文件
  • 选择要“自动”打开的文件类型,并使用上下文菜单中的“打开方式…”选择批处理文件作为要使用的默认程序
  • 批处理文件将获得传递给参数1的“单击”文件,然后可以将其作为参数传递给Python脚本,然后作为sys.argv[1]接收
  • 一个使用扩展名“
    .paint
    ”的示例,该扩展名是使用假设的python脚本
    pypaint.py
    打开的,可能会澄清一些问题:

    run_paint.bat:
    @echo off
    echo 'clicked file is' %1
    python path_to_pypaint.py %1
    
    py_paint.py:
    import sys
    print 'opening', sys.argv[1]
    

    不了解OSX,但在Windows中,您可以按如下方式操作:

  • 创建批处理文件
  • 选择要“自动”打开的文件类型,并使用上下文菜单中的“打开方式…”选择批处理文件作为要使用的默认程序
  • 批处理文件将获得传递给参数1的“单击”文件,然后可以将其作为参数传递给Python脚本,然后作为sys.argv[1]接收
  • 一个使用扩展名“
    .paint
    ”的示例,该扩展名是使用假设的python脚本
    pypaint.py
    打开的,可能会澄清一些问题:

    run_paint.bat:
    @echo off
    echo 'clicked file is' %1
    python path_to_pypaint.py %1
    
    py_paint.py:
    import sys
    print 'opening', sys.argv[1]
    

    这个问题真的不清楚-也许你应该添加一个例子,用例,一些你在这里遗漏了很多上下文的东西。你在写什么类型的文件?当文件传递给python时,您希望对其执行什么操作?你应该编辑你的问题,并提供更多关于你想做什么、你已经尝试过什么以及为什么它不起作用的细节。我想问题是,“在MacOSX上,我如何使Python脚本成为扩展名ABC文件的默认处理程序?”所有需要的细节都在那里。正如@Fake所说,这是一个OS X问题。我为您添加了“OSX”标签,这样您的问题可能会被知道答案的人看到。(你可能还想在你的问题文本中采用他的措辞)。这个问题真的不清楚-也许你应该添加一个例子,用例,一些你在这里遗漏了很多上下文的东西。你在写什么类型的文件?当文件传递给python时,您希望对其执行什么操作?你应该编辑你的问题,并提供更多关于你想做什么、你已经尝试过什么以及为什么它不起作用的细节。我想问题是,“在MacOSX上,我如何使Python脚本成为扩展名ABC文件的默认处理程序?”所有需要的细节都在那里。正如@Fake所说,这是一个OS X问题。我为您添加了“OSX”标签,这样您的问题可能会被知道答案的人看到。(你也可以在问题文本中采用他的措辞)。