1

まず、Pythonでコーディングしたことは一度もないと言いましょう。

ローカルマシンからサーバーに大量のファイルをアップロードするには、API呼び出しを行う必要があります。サーバー上で、ファイルのファイル名を取得し、文字列sans拡張子を「識別子」という変数に割り当てます。

import requests
import os
url = 'http://someplace'
folder = 'path/to/folder/'
for card in os.listdir(folder):
    data = {'identifier': PyFile_Name(PyObject *p), 'type': 'Inventory Card'}
    files = {'card': open(os.path.join(folder, card), 'rb')}
    requests.post(url, data=data, files=files, auth=('username', 'pass'))

私はこれを正しくやっていますか?

4

1 に答える 1

1

使用する必要があります

import requests
import os
url = 'http://someplace'
folder = 'path/to/folder/'
for card in os.listdir(folder):
    data = {'identifier': '.'.join(card.split('.')[:-1]), 'type': 'Inventory Card'}
    files = {'card': open(os.path.join(folder, card), 'rb')}
    requests.post(url, data=data, files=files, auth=('username', 'pass'))

'.'.join(card.split('.')[:-1])ファイル名(in card)を取得し、ファイル名のピリオドで区切られたコンポーネントに分割し、リストの最後の要素を拒否して、ファイル[:-1]名から拡張子を除いたものに再結合します。

この構文を使用すると、次のような複数のピリオドを持つファイル名が処理されます。foo.20120613.txt

編集:

~/tmp私のディレクトリ内のファイルを一覧表示する例...

[mpenning@Bucksnort tmp]$ ls
howto  regex_trial.xml  soln.py
[mpenning@Bucksnort tmp]$
[mpenning@Bucksnort tmp]$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> for card in os.listdir('./'):
...     print "card:", card
...     print " base_name:", '.'.join(card.split('.')[:-1])
...
card: howto
 base_name:
card: regex_trial.xml
 base_name: regex_trial
card: soln.py
 base_name: soln
>>>

これはディレクトリであることに注意してくださいhowto...このパスにディレクトリがある場合は、ディレクトリをスキップするロジックをスクリプトに含める必要があります。

于 2012-06-15T10:48:05.587 に答える