我正在使用Python 3中的input()通过命令行读取文本文件,并且文件中显示为数字的行被自动视为整数,从而导致错误。我的理解是input()不应进行任何评估,而应将它们视为字符串。是什么导致了这种现象,我该如何预防?
编辑:对于一个更干净的示例,如果我的代码只是读取
cases = input()
print(type(cases))
我的输入文件显示为:
100
4 2
然后我输入cmd:
script.py < input_file.txt > output_file.txt
我的输出文件将包含
<type 'int'>
答案 0 :(得分:0)
@Patrick Artner几乎可以肯定是正确的。您的代码应能在Python 3中按预期方式运行,但在Python 2中,您会得到想要的结果。
与Python 3的 input()等效的Python 2是raw_input()
,它将输入转换为您期望的字符串。
编辑:顺便说一句,永远不要在Python 2中使用input()。它会评估用户的输入,因此是不安全的。 (如果输入是os.system("<some really horrible command>")
呢?)这就是Python 3替换它的原因。