-3

ファイル配布スクリプトをコーディングしようとしています: スクリプトは、配布するファイル/ディレクトリを var 'filename'、宛先パスを 'path' として受け取り、srv.list にリストされているすべてのサーバーを介して実行し、file/ を scp します。それらのそれぞれにdir。さらに、ユーザー入力がファイルではなくディレクトリである場合に使用される ropt があります。

#!/usr/bin/python
import os
dirList = os.listdir("./")
srvlist = os.system("cat srv.lst")
filename = raw_input("Please enter file/dir to distribute")
path = raw_input("Please enter destination path")
ropt = ()
for d in dirList:
    if os.path.isdir(d) == True:
        ropt = "-r"
        os.system("/usr/bin/scp " (ropt)"-- "(filename)" "(srvlist)":"(path)
    else:
        os.system("/usr/bin/scp "(filename)" "(srvlist)":"(path))

出力:

Please enter file/dir to distribute: 1.py
Please enter destination path: /root/
Traceback (most recent call last):
  File "1.py", line 13, in ?
    os.system("/usr/bin/scp "+filename+" "+srvlist+":"+path)
TypeError: cannot concatenate 'str' and 'int' objects
[root@g1-lon distribute]#
4

2 に答える 2

2

この行は間違いなく有効ではありません:

os.system("/usr/bin/scp " (ropt)"-- "(filename)" "(srvlist)":"(path)

トレーニングの親がありません。

あなたが何をしようとしているのかわかりませんが、そのエラーを修正すると仮定すると、おそらく補間を使用できます):

os.system("/usr/bin/scp %s -- %s %s:%s" % (ropt, filename, srvlist, path))
于 2013-04-21T14:48:24.430 に答える
2
os.system("/usr/bin/scp "+ ropt+"-- "+filename+" "+srvlist+":"+path)

+符号は連結に使用されます

于 2013-04-21T14:53:21.293 に答える