【问题标题】:On win7 with Python 3.2.1, what's special character following the read string from command line?在带有 Python 3.2.1 的 win7 上,从命令行读取字符串后的特殊字符是什么?
【发布时间】:2012-10-28 15:41:39
【问题描述】:

我在一个文件中有一个脚本:

#../Python32/Test.py
y = input("Please input:")
print("'" + y + "'")

从命令行,我运行脚本,XP和Win7的结果不同:

在 XP 上:

> Python Text.py
Please input:h
'h'

在Win7上,结果是:

> Python Text.py
Please input:h
'h

在 Win7 上,结果中缺少第二个单引号。

但如果脚本如下:

#../Python32/Test2.py
y = input("Please input:")
print("'" + y.rstrip() + "'")

在 win7 和 XP 上的结果是相同的。

> Python Text.py
Please input:h
'h'

比较结果,在win7上从命令行读取的字符串后面应该有特殊字符。我在互联网上搜索并尝试了所有我知道的方法,但没有得到答案。

在win7上通过命令行读取的字符串后面的特殊字符是什么?或者有什么方法可以打印脚本中的特殊字符?

提前感谢您的回复。

【问题讨论】:

    标签: windows-7 input python-3.x


    【解决方案1】:

    您在字符串中有一个回车符,从 Windows 结束的 CRLF 行开始。这会将光标移动到行首,覆盖第一个引号。 input() 应该删除它。我认为那个错误是fixed in 3.2.1。你确定你没有使用 3.2?

    【讨论】:

    • 感谢您的回复。看来bug还是存在的。以下是我从 Python Shell (IDLE) 获得的 Python 版本:Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32
    • @KurtisZhao:您运行的是 2011 年 2 月发布的 3.2。2011 年 7 月发布了带有错误修复的 3.2.1。大多数系统现在应该运行 3.2.3,发布于 2012 年 4 月. 3.3.0 于 2012 年 9 月发布,有很多改进,包括 Windows 上的 shebang 支持、内置虚拟环境、重新设计的 OS/IO 异常处理、十进制模块的 120 倍加速以及新的灵活字符串节省内存和 dict 密钥共享实现。
    • 你说得对,它是 3.2 上的一个错误。我在我的 win7 机器上重新安装了 3.3,它现在可以工作了。谢谢你们的cmets。
    猜你喜欢
    • 2017-08-27
    • 2022-12-09
    • 2020-08-26
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多