Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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脚本赢得';双击.py时,不能右键运行_Python_Python 3.x - Fatal编程技术网

Python脚本赢得';双击.py时,不能右键运行

Python脚本赢得';双击.py时,不能右键运行,python,python-3.x,Python,Python 3.x,我精通Python和编程,但双击打开.py文件时,我的程序无法正常工作。当我通过IDE(Pycharm)从命令行运行它时,它就会出现。基本上,当双击时,它将到达key=input(“enterdecode key:”)部分,然后在键入内容后,它将关闭。任何帮助都将不胜感激。我知道我的代码并不优雅,它只是需要工作。Python 3.5.2 如果有帮助的话,“key”的示例输入为23,“encoded”的示例输入为142128133123134142。它应该输出“窗口”,并在命令行和Pycharm中

我精通Python和编程,但双击打开.py文件时,我的程序无法正常工作。当我通过IDE(Pycharm)从命令行运行它时,它就会出现。基本上,当双击时,它将到达key=input(“enterdecode key:”)部分,然后在键入内容后,它将关闭。任何帮助都将不胜感激。我知道我的代码并不优雅,它只是需要工作。Python 3.5.2

如果有帮助的话,“key”的示例输入为23,“encoded”的示例输入为142128133123134142。它应该输出“窗口”,并在命令行和Pycharm中成功执行

import sys


def main(key, encoded):

    if encoded == 0:               #This should run if program was double-clicked (no arguments)
        encoded = input("Paste encoded JavaScript: ")
        key = input("Enter decode key: ")

    def decode(key, encoded):           #Decode the data
        encoded = encoded.split(',')    #Split each section delimiting by a colon
        decoded = []
        for x in encoded:
            x = int(x) - int(key)       #Subtract the key from the number in each section
            decoded.append(chr(x))      #Change from ASCII decimal code to the ASCII character
        decoded = ''.join(decoded)      #Join back into a string
        print(".")
        print(".")
        print(".")
        print(".")
        print("Encoded data:")
        print(encoded)
        print("Decode key:")
        print(key)
        print("Decoded data:")
        print(decoded)
        return 0

    decode(key, encoded)            #Jump into the decode function
    return 0

if __name__ == "__main__":
    try:
        if len(sys.argv) > 1:          #If length is greater than 1, then there were arguments added upon program execution
            key = sys.argv[1]          #The "key" should be the first argument
            encoded = sys.argv[2]      #The "encoded" data should follow
        else:
            key = 0                    #If length is anything else, then set them to 0 and ask for the data later
            encoded = 0
        main(key, encoded)             #Jump into main function and pass the key and encoded arguments
    finally:
        input("Press Enter to exit")

轻松地在代码末尾放置一个输入(“”),这样脚本就固定在那里了

轻松地在代码末尾放置一个输入(“”),这样脚本就固定在那里了

我建议用异常处理来包装程序

下面是代码最后一部分的一个片段:

if __name__ == "__main__":
    try:
        if len(sys.argv) > 1:
        # ...
    finally:
        input("Press the enter to exit")
通过执行此操作,无论您的程序是否成功完成或失败,都会收到一条提示,要求您按enter键。这将使您有机会在关闭窗口之前阅读屏幕上的内容


在程序失败的情况下,仅仅在程序末尾添加一个
输入(“”
)是不起作用的,您可以在这里指出可能会发生这种情况。

我建议使用异常处理来包装程序

下面是代码最后一部分的一个片段:

if __name__ == "__main__":
    try:
        if len(sys.argv) > 1:
        # ...
    finally:
        input("Press the enter to exit")
通过执行此操作,无论您的程序是否成功完成或失败,都会收到一条提示,要求您按enter键。这将使您有机会在关闭窗口之前阅读屏幕上的内容



如果程序出现故障,仅在程序末尾输入(“”)是不起作用的,您指出可能会发生这种情况。

我想我刚刚解决了我的问题。出于某种原因,当你双击一个.py时,我的电脑仍然坚持使用Python 2.7,即使我的路径设置为Python 3.5,我右键单击以3.5打开,它只是在2.7中打开……因此,这只是打开了一个新问题。

我想我刚刚解决了我的问题。出于某种原因,当你双击一个.py时,我的电脑仍然坚持使用Python 2.7,即使我的路径设置为Python 3.5,我右键单击以3.5打开,它只是在2.7中打开……因此,这只是打开了一个新问题。

你可以在最后加上:
输入(“按Enter键退出”)
对不起,我刚刚更改了标题。起初,我认为它只是没有在最后暂停。但后来我意识到它甚至没有通过这个项目。它应该已经暂停打印出信息后(在那里我有y=输入),我不能完全告诉发生了什么。我想你粘贴的代码中有一些格式错误。我已经清理了一些代码。基本上,如果JavaScript中有一个编码部分用于正在使用的特定类型的重定向器。粘贴编码的部分,例如142128133123134142,69139134135,69131134122120139128134133,69127137124125,84,它将每个部分分开(用冒号分隔)并减去输入的键。然后它将其连接回一个字符串并输出该字符串。在上面的示例中,拆分后的“window.top.location.href='print your
encoded
”。我在你提供的复制字符串中得到了一些ascii字符。如果我把它打印出来,效果很好。你可以在最后加上:
input(“按Enter键退出”)
对不起,我刚更改了标题。起初,我认为它只是没有在最后暂停。但后来我意识到它甚至没有通过这个项目。它应该已经暂停打印出信息后(在那里我有y=输入),我不能完全告诉发生了什么。我想你粘贴的代码中有一些格式错误。我已经清理了一些代码。基本上,如果JavaScript中有一个编码部分用于正在使用的特定类型的重定向器。粘贴编码的部分,例如142128133123134142,69139134135,69131134122120139128134133,69127137124125,84,它将每个部分分开(用冒号分隔)并减去输入的键。然后它将其连接回一个字符串并输出该字符串。在上面的示例中,拆分后的“window.top.location.href='print your
encoded
”。我在你提供的复制字符串中得到了一些ascii字符。如果我把它打印出来,效果很好。谢谢。我已经用它更新了代码,并用注释解释了一切。输入解码键后,程序直接暂停(最后一部分)。为什么不直接使用解码功能呢?这个问题的格式是+1,我希望这个网站上的每个人都像你一样小心。请尝试在try语句之前添加
print sys.argv
?这可能会有一些启发。所以,我试过了,我得到的只是文件的路径。这应该发生。但是,我有一个无关的更新。所以,我当时正在工作(这里将使用它),由于我们在那里使用的是Python2.7,所以不得不对一些东西进行转换。一旦我这么做了,一切都很顺利。我唯一改变的是没有括号的打印和原始输入。我甚至在家里做了这件事,同时仍然使用Python 3.5,它也可以工作。什么问题?谢谢。我已经用它更新了代码,并用注释解释了一切。输入解码键后,程序直接暂停(最后一部分)。为什么不直接使用解码功能呢?这个问题的格式是+1,我希望这个网站上的每个人都像你一样小心。请尝试在try语句之前添加
print sys.argv
?这可能会有一些启发。所以,我试过了,我得到的只是文件的路径。这应该发生。但是,我有一个无关的更新。所以,我在工作(这里将使用)时