【发布时间】:2017-01-18 03:49:51
【问题描述】:
所以我将一些值放入我编写的 Python 程序中(它的作用无关紧要):
E:\Users\Me\Desktop\Python>idtohex.py
输入 ID:213467
DB 41 03
很好,它工作正常。现在我不小心把这个字符串复制到了我的剪贴板:
[此处换行]
E:\Users\Me\Desktop\Python>idtohex.py
从我最初在命令提示符中启动程序时开始。
现在,由于换行,我的程序由于无法处理输入而崩溃(糟糕):
ValueError: int() 以 10 为底的无效文字:''
由于这个错误,我现在返回命令提示符并输入剪贴板中的下一行,它正在尝试运行此命令:
E:\Users\Me\Desktop\Python>idtohex.py
命令提示符给了我这个错误,所以我认为这没什么大不了的,继续吧:
'E:\Users\Me\Desktop\Python' 未被识别为内部或外部命令,
可运行的程序或批处理文件。
现在我尝试再次运行该程序,但我的整个程序完全是空的。 Overwritten. 0-bytes on disk。因此,由于这个简单的错误,我不知何故覆盖了我的整个程序,并且无法恢复它。
这地狱是如何在 Windows 命令提示符中发生的?
【问题讨论】:
-
这一行:
E:\Users\Me\Desktop\Python>idtohex.py的意思是“在给定路径执行程序并将其输出存储到 idtohex.py 文件中”,和往常一样。如果该命令不存在,则其输出为空,因此.py文件中存储的结果为0字节... -
您应该使用 IDE 而不是旧的命令提示符进行调查。
-
你真的在命令提示符下输入了所有
E:\Users\Me\Desktop\Python>idtohex.py吗?您是否不知道E:\Users\Me\Desktop\Python>代表提示本身 - 您应该在打开终端时看到它 - 而您只应该输入idtohex.py? -
@HarryJohnston,cmd.exe 肯定是一个遗留的 shell(它可以追溯到 OS/2,它基于 MS-DOS COMMAND.COM),但你不能对 powershell 说同样的话。 exe(也是一个控制台应用程序,即conhost.exe的客户端)。对于 3.6b1(9 月 12 日),CPython 正在改进 Windows 控制台的原始 I/O 层,以使用宽字符 API 支持 Unicode(原始层在 UTF-16 和 UTF-8 之间进行转码,因为使用字节作为 UTF -8 更适合 Python)。因此控制台脚本和 python.exe REPL 将不再局限于旧代码页。好吗?
标签: python windows batch-file command-line cmd