首页 > 解决方案 > subprocess.call() 的正确语法

问题描述

我有以下脚本:

import glob
import subprocess
import os

filePath = "/tmp/ming"
keyword = "GC10^Dummy-Segment"

#if keyword in filePath:
new=glob.glob('/tmp/ming/*Dummy-Segment*')
print(new)
for x in new:
    subprocess.call(['hdfs dfs -copyFromLocal {0} /user/app'.format(x)], shell=True)

打印(新)产生:

['/tmp/mike/GC10^Dummy-Segment_2018', '/tmp/mike/GC10^Dummy-Segment_2019']

看到以下错误:

copyFromLocal: unexpected URISyntaxException
copyFromLocal: unexpected URISyntaxException

在较早的尝试中,我不得不用 %5E 替换 ^ 但我现在真的不确定如何替换 ^。

我认为对于新的每个 x,我必须在 ^ 所在的位置添加 %5E,然后执行 copyFromLocal。但是我该怎么做呢?

另外,我正在运行 Python 2.6.6

标签: pythonhadooppython-2.6

解决方案


推荐阅读