次のpythonスクリプトを使用して、Windowsマシン間でファイルをコピーしています。関数内の正規表現の使い方は?
from subprocess import call
def copy_logs():
file= '.\pscp.exe -pw test123 C:\Users\Administrator\Desktop\interact.* [email protected]:/'
call(file)
copy_logs()
私は上記のスクリプトを実行すると、私は次のエラーを取得しています:
PS C:\Users\Administrator\Desktop> python .\execute_pscp.py
C:\Users\Administrator\Desktop\interact.*: No such file or directory
PS C:\Users\Administrator\Desktop>
しかし、私は、まさに「ファイル=」としてファイル名を指定した場合、\ pscp.exe -pw test123 C:\ Users \ Administrator \ Desktop \ interact_python.py [email protected]:/ '"、以下のように完全に動作します。
PS C:\Users\Administrator\Desktop> python .\execute_pscp.py
interact_python.py | 0 kB | 0.2 kB/s | ETA: 00:00:00 | 100%
PS C:\Users\Administrator\Desktop>
しかし、私はコマンド "interact。*"の中でいくつかの正規表現を使用したいと思います。特定のファイル/ファイルをコピーできるようにします。
また、このスクリプトを3時間ごとに実行します。これを実現するためのPythonの方法はありますか?
「pscp.exe」に引数を渡すだけです。 'pscp.exe'はその種の入力をサポートしなければなりません。 – zvone
'call(file、shell = True)'。シェルが全く起動していないときに、シェル機能を使用しようとしています(シェルはアスタリスクを展開する責任があり、起動されたアプリケーションではありません)。 –
Windowsシェルでは、アスタリスクは展開されません。 –