在python中的scp中使用文件名中的通配符

时间:2014-04-15 07:12:48

标签: python unix scp

我想在python脚本中执行一个简单的scp命令,按照某个名称模式复制文件。

我正在执行以下命令:

filename = '\*last_processed_date\*.txt'
command = ''' scp test@100.41.14.27:/home/test/test2/test3/%s %s '''\
                      % (filename,self.unprocessed_file_dir)
os.system(command)

我明白我必须逃避通配符'*',我正在做...但我仍然得到:

scp: /home/test/test2/test3/*last_processed_date*.txt: No such file or directory

我想知道我做错了什么..

编辑: 这是我身边的一个粗心的错误。我应该做的:

command = ''' scp 'test@100.41.14.27:/home/test/test2/test3/%s' %s '''

而不是:

command = ''' scp test@100.41.14.27:/home/test/test2/test3/%s %s '''\
                          % (filename,self.unprocessed_file_dir)

1 个答案:

答案 0 :(得分:1)

这适用于我的系统:

host = 'test@100.41.14.27'
filename = '*last_processed_date*.txt'
rpath = '/home/test/test2/test3'
lpath = self.unprocessed_file_dir
command = 'scp %s:%s/%s %s' % (host, rpath, filename, lpath)
os.system(command)

如果它出现错误,请先从终端尝试此操作:

ssh test@100.41.14.27 ls /home/test/test2/test3/*last_processed_date*.txt