Snow loepard(http://dl.dropbox.com/u/1144075/Post%20to%20Dropbox.zip)の "Dropboxへの投稿"サービスを調整しようとしています。 私は公共のURLをたくないが、goo.glPythonと文字列連結からシェルコマンドを実行する
から短く1そのため、私はこれらのシェルコマンドを使用しています:
curl -s --data-urlencode "url=http://link.com" http://googl/action/shorten | grep "googl" | awk -F\" '{print $(NF-1)}' | awk 'BEGIN { FS = "=" } ; { print $2}' | pbcopy
今のPythonスクリプトは、これはすべてのファイルのためのDropboxのURLをコピーしませんそれをクリップボードにパブリックフォルダ内だけコピー:
pasteURLs = []
for file in copied_files: # for all elements in our list
components = file.split(os.sep) # seperate the path
local_dir = os.sep.join(components[5:]) # cut off the beginning
local_dir = urllib.quote(local_dir) # convert it to a URL (' ' -> '%20', etc.)
#construct the URL
finalURL = 'http://dl.dropbox.com/u/%s/%s' % (dropbox_id, local_dir)
pasteURLs.append(finalURL) # add the current URL to the string
copy_string = "\n".join(pasteURLs)
os.system("echo '%s' | pbcopy" % (copy_string)) # put the string into clipboard
私は私のpythonについて何も知らない認めざるを得ないが、それがどのようなものか、私はこれで最後の2行を変更する必要があるから:
を3210shortURL = []
for thisURL in pasteURLs:
shortURL = os.system(curl -s --data-urlencode "url=http://link.com" http://googl/action/shorten | grep "goo.gl" | awk -F\" '{print $(NF-1)}' | awk 'BEGIN { FS = "=" } ; { print $2}' | pbcopy)
shortURLs.append(shortURL)
copy_string = "\n".join(shortURLs)
os.system("echo '%s' | pbcopy" % (copy_string)) # put the string into clipboard
しかし、私の問題は、コマンドに正しいURLを入れる方法です。あなたはそれがhttp://link.com
と言うことがわかりますが、代わりにthisURL
を使用する必要があります。
アイデア?前もって感謝します!
@ダニエルと同じですが三重引用符は非常に多くの埋め込み引用符を避けなければなりません。 –
これはos.system()が出力を返さないため動作しません。 – agf
ああ、サブプロセスを使用する必要があります。これを修正してみましょう。 –