我在一个文件中有一些命令,我正在python中读取并使用它执行子流程.Popen. 运行splitlines()方法时,生成的行数取决于终端屏幕的宽度。文件中的命令包括:
CREATE EXTERNAL TABLE tableforview (name string, dob string) STORED AS PARQUET LOCATION 'location';
文件中没有换行符;它都是在一行中键入的。在
hivep = subprocess.Popen("beeline -u 'connectionstring' --force=true --outputformat=csv2 --showWarnings=false -f hivetest", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
(output, err) = hivep.communicate()
hivequeryList = []
hivequery = ""
for line in output.splitlines():
print(line)
但是,当我逐行打印splitlines()方法的输出时,根据终端屏幕的大小,我得到两行或三行。在
我正在把分词读入词典。所以我希望字典的键包含整个create查询,而值包含结果。但是现在的情况是查询被切断了,就像这样
{"CREATE EXTERNAL TABLE tableforview (name string, dob string) STORED AS PARQUE" : "T LOCATION 'location';"}
切断发生的位置取决于终端屏幕的宽度。在
我不知道为什么我的终端屏幕宽度在读取文件时会很重要。我很感激你的意见。在
当你使用
print
时,你的屏幕宽度就被用来打印你的内容,如果你以后调整它的大小,打印已经完成了它的计算。在相关问题 更多 >
编程相关推荐