我必须编写一个脚本,该脚本应该与python 2/3兼容。 我需要使用输入法,它应该接受不带引号的输入。 Python 3为此仅支持raw_input 而Python 2仅支持该输入
我编写了一种检查python版本并使用相应输入法的方法(如下所示)
问题是:
output = os.popen('python --version').readlines()
返回
Python 2.7.15rc1
[]
因此,尽管打印了行蜂,但该列表实际上是空的
如果我更改文本要求git版本
output = os.popen('git --version').readlines()
它返回
['git version 2.17.1\n']
应该。
这种方法怎么会如此奇怪? 有人知道如何解决吗?
我试图在python 2和3上运行它。
def input_23_comp(text=''):
output = os.popen('python --version').readlines()
output = output[0].strip()
if (output[0:8] == 'Python 2'):
raw_input(text)
else:
input(text)
答案 0 :(得分:2)
val kafkaDatademostr = spark.readStream.format("kafka").option("kafka.bootstrap.servers","fffff.dl.ggg.com:8023").option("subscribe","dfo").option("kafka.security.protocol","SASL_PLAINTEXT").load
val interval=kafkaDatademostr.select(col("value").cast("string"),col("timestamp")).alias("csv").select("csv.*")
将版本信息打印到stderr。您正在捕获标准输出。您需要捕获stderr,或将stderr重定向到stdout。
但是,如果要检查正在运行的Python版本,则运行python --version
是错误的方法。您通过该命令调用的版本甚至可能不是您正在运行的版本。使用python --version
。