私は、SFTP上のpythonのparamikoモジュールを使用してファイルを送信しようとしています。問題は私のスクリプトがファイルパス全体を知ることができないことです。例えば、ここで私はからファイルを取得しようとしているローカルパスです:paramiko sftpのローカルファイルパスでのPython正規表現の一致
\\buildserver\builds\1.2.34.45.78910_01JAN17\filename.txt
は、問題は、私はそれだけを以下の日時(第3フォルダ(1.2.34.45.78910_
)の最初の部分を持っていないということです01JAN17
)。これを回避するために、私は正規表現を使用してフォルダ名の最初の部分にマッチさせようとしています。ファイルput
はsftp_client.py
ファイルに入力されますので、正規表現をこの関数の入力として渡す方法はありますか?
例入力:
buildNumber = "1.2.34.45.78910"
localFilePath = "\\\\buildserver\\builds\\" + "re.match(r\"^{0}\")".format(buildNumber) + "\\filename.txt"
sftp.put(localFilePath, remoteFilePath)
出力例:
WindowsError: [Error 3] The system cannot find the path specified: '\\\\buildserver\\builds\\re.match(r"^1.2.34.45.78910")\\filename.txt'
私はre
とfnmatch
モジュールの両方を使用してみましたが、彼らは彼らの両方が取るので、私は必要な機能を持っていないようです正規表現に加えて入力として一致させる文字列。
ファイルパスの途中で正規表現が一致しない場合は、別の方法でこれをどのように達成できるかについてのご意見をいただければ幸いです。
あなたは、例えば、入力と出力を提供することができます?細部が不明確に見える – depperm
確かに、私はオリジナルの投稿を編集しました。 – Qwix
正規表現の代わりにhttp://stackoverflow.com/a/15313024/3462319を使用する可能性があります – depperm