从命令行启动Python IDLE以编辑脚本

11
我尝试了许多不同的命令:idle.py -e filepath,但它只是像平常一样启动IDLE,没有打开任何额外的编辑窗口,并且也没有出现任何错误。
那么我该如何通过命令行(或者甚至是Python模块)做到打开IDLE,文件> 打开> 文件路径的相当操作呢?
8个回答

18

你需要按照idelib文件夹(C:\Python33\Lib\idlelib)中main.py文件中的说明进行操作,至少在python 3.3版本中是这样解释的:

IDLE main entry point

Run IDLE as python -m idlelib

使用python -m idlelib <script_to_edit>命令,你可以在idle中打开和编辑脚本。我没有检查过之前的版本,但可能是相同的命令。

这也记录在版本3.3.3的更改日志中。


在Windows快捷方式中,它变成了C:\Python34\python.exe -m idlelib "path/to/script.py"。它会在IDLE后面启动一个命令窗口,但只要关闭IDLE,它就会消失。 - Noumenon
1
这在我的Windows 10机器上完美运行。我使用了pypy -3 -m idlelib myscript.py - HelloWorld101
在Windows上,您可以使用pythonw.exe(注意名称中的额外“w”)来避免命令窗口显示在IDLE后面。 - Daz

6
请原谅我顶起这么老的帖子,但是在社区的帮助下,我一直在自学Linux和Python,并尝试弄清楚如何从命令行调用IDLE2和IDLE3。我发现了这篇文章,其中一些解决方案对于我的应用程序来说似乎有点复杂。然后我想到可以在/usr/bin/路径中为每个创建系统链接。
sudo ln -s idle-python3.1 idle3
sudo ln -s idle-python2.6 idle2

为了回复OP。从脚本所在的目录,输入以下命令:

idle3 abc123.py 

或者
idle2 abc123.py

我很高兴终于有了一个“灯泡瞬间”,我不会让一个两岁的帖子阻止我发布我的解决方案。


4
不要因为重新启动旧的线程而感到不好(尤其是如果它们没有得到答案!)。 StackOverflow 的存在是为了为像我这样提问的人提供答案,但也为像你这样寻找类似问题解决方案的读者提供参考。因此,在这里不鼓励避免重启线程。谢谢你的回答 :) - Ponkadoodle

6
创建一个新的文本文件,并在其中输入以下内容:
C:\Python26\Lib\idlelib\idle.pyw "C:\file1.py" "C:\file2.py"

在您的实际脚本中,您将使用您文件的路径替换 "C:\file1.py" 和 "C:\file2.py",保存为 .bat 文件,然后启动它。这样就可以达到您想要的效果。


1
也许我的IDLE版本有些问题。作为测试,我尝试了idle -h命令,根据PyShell.py的说明应该会打印帮助信息。但是它只打开了shell,没有任何输出内容。你使用的Python版本是哪个?(我的是2.6(编辑:看起来你也是)) - Ponkadoodle
1
idle.pyw 对我没用,但是同一个文件夹下有一个 idle.bat :) - Mike R
安装了 pypyw 后,运行命令 py -X[.Y] -m idlelib [args] 可以方便地启动附带控制台的 IDLE,或者运行 pyw -X[.Y] -m idlelib [args] 以无附加控制台的方式运行。请参阅文档中的Python Launcher for Windows - Eryk Sun
在我的情况下,我不得不使用-r开关,我在其他地方找到了它 C:\Python27\Lib\idlelib\idle.bat -r "C:\temp\module1.py" - Dowlers
太棒了!如果您忽略添加“C:\file1.py”等内容,仅使用第一部分,它将启动IDLE! - VISQL
显示剩余3条评论

3
很少使用原生操作系统是有用的。我创建了一个“win批处理文件”,放在我的 .py 文件所在的文件夹中:
start /MIN cmd /C c:\Python27\lib\idlelib\idle.py -e %1 %2 %3 %4 %5 %6

这可以一次从cmd行打开最多六个文件。只需输入批处理文件的名称,后跟零到六个文件名。如果您指定的一个或多个文件未找到,则空闲将这些文件作为新文档打开。


3
注意:在Windows中,您可以将%1 %2 %3 ...替换为简单的%*。 - kodybrown
你可以将.LNK添加到PATHEXT中,以便将快捷方式作为命令运行;如果您希望其继承父目录的工作目录,则将工作目录留空。这比使用批处理文件模拟快捷方式更容易管理,并且不需要运行cmd.exe来运行批处理文件以使用start命令来运行cmd.exe以运行实际命令的扭曲操作。 - Eryk Sun

2

首先确保你的idle的位置在路径中。我使用的是"python3.5",所以我的位置是这样的:C:\Program Files\Python35\Lib\idlelib,你的可能不同。
使用以下命令:idle -r file_name.py来运行文件或者idle file_name.py来编辑文件。


或者使用start idle -r file_name.py ^&exit命令。


  • 使用 -r 标志来解决问题,这是一个有用的答案,但需要进一步澄清。
- Superior

0

你可以使用Python编程来编辑你的Python文件。举个简单的例子,假设你想要搜索一个词并将其替换为其他内容。

import fileinput
import os
os.chdir( os.path.join("c:\\","path") )
for file in os.listdir("."):
    for line in fileinput.input(file,inplace=0):
       if "search word" in line :
           line=line.replace("search word","new word")
           print line

(使用inplace=1进行原地编辑)。然后保存并使用解释器正常运行脚本作为Python脚本。


你为什么这样认为呢?将它保存为普通的Python脚本,然后在命令行中使用解释器运行它。这与编写批处理文件相同,只不过你使用的是Python,而不是批处理或VBScript。这比手动逐个打开IDLE并进行编辑要好得多。 - ghostdog74
我的意思是,你必须知道要替换的确切短语,而不能实际浏览文件内容。也许我误解了这个功能,但它看起来像是将一个文件中所有的“搜索词”替换为“新词”。或者也许你误解了我的问题:我想自动打开15个文件进行编辑。 - Ponkadoodle
我明白了,我确实误解了。 - ghostdog74

0

只需将IDLE的路径添加到您的PATH环境变量中。

例如,我创建了一个名为IDLE_PATH的环境变量,并将值设置为C:\Python27\Lib\idlelib

然后在我的PATH变量中添加了;%IDLE_PATH%;,打开一个新的cmd提示符或在console2中打开一个新选项卡并运行idle <file_name>以打开文件,您将能够从任何目录执行此操作。在IPython控制台中,在命令前添加!,例如!idle test.py

恭喜,现在您是Python高手!


0

将idlelib粘贴到您的系统路径或用户路径、环境变量中。例如,像这样: C:\Program Files\Python310\Lib\idlelib

然后在命令提示符中键入“idle”。完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接