我正在尝试在Python脚本中导入焦油gz从HDFS文件,然后解压它。文件如下所示20160822073413-EoRcGvXMDIB5SVenEyD4pOEADPVPhPsg.tar.gz,它的结构始终相同。在
在python脚本中,我希望在本地复制它并提取文件。我使用以下命令执行此操作:
import subprocess
import os
import datetime
import time
today = time.strftime("%Y%m%d")
#Copy tar file from HDFS to local server
args = ["hadoop","fs","-copyToLocal", "/locationfile/" + today + "*"]
p=subprocess.Popen(args)
p.wait()
#Untar the CSV file
args = ["tar","-xzvf",today + "*"]
p=subprocess.Popen(args)
p.wait()
导入工作正常,但无法提取文件,出现以下错误:
^{pr2}$有人能帮我吗?在
非常感谢!在
我找到了一种方法来完成我所需要的,而不是使用os命令,而是使用pythontar命令,它很有效!在
希望这能有所帮助。在
问候 马吉德
尝试使用
shell
选项:来自the docs:
注意:
除了@martriay答案之外,您还出现了一个错误-您写的是“20160822*.tar”,而文件的模式是“20160822*”。焦油gz““
当应用
shell=True
时,该命令应该作为一个完整的字符串传递(请参见documentation),如下所示:如果不需要
^{pr2}$p
,只需使用subprocess.call:但是我建议您使用更多的标准库,例如:
相关问题 更多 >
编程相关推荐