在linux中用python3通过os和subprocess运行hadoop上传命令找不到文件

我在几台linux虚拟机上打好了hadoop平台,这时直接用linux的终端输入命令:

 hadoop fs -put Desktop/test.txt /

是可以把本地桌面的text.txt文件上传到hadoop的HDFS中的。
但是通过python脚本,导入os库或者subprocess库,通过

 os.system("hadoop fs -put Desktop/test.txt /")

或者

 subprocess.call("hadoop fs -put Desktop/test.txt /",shell = True)

就会报错:No such file or directory

这是怎么回事,求助啊!
通过python脚本上传本地文件到HDFS应该怎么样最快最好呢?

这个用完整路径,python执行的时候,当前路径不在你的Desktop这一个目录了

 /home/xxx/Desktop/test.txt

python上我是直接报hadoop:未找到命令,但是直接在机器上执行就正常