スクリプトを実行するたびに、毎週または毎月のみを対象とするように、一意のファイル名でファイルファイルを作成しようとしています。そのため、ファイル名に日付を使用することにしました。
f = open('%s.csv', 'wb') %name
このエラーが発生する場所です。
Traceback (most recent call last):
File "C:\Users\User\workspace\new3\stjohnsinvoices\BabblevoiceInvoiceswpath.py", line 143, in <module>
f = open('%s.csv', 'ab') %name
TypeError: unsupported operand type(s) for %: 'file' and 'str'
静的なファイル名を使用すると機能します。open関数に問題があります。つまり、このような文字列を渡すことはできませんか?
nameは文字列で、次のような値を持ちます。
31/1/2013BVI
助けてくれてありがとう
% name
文字列の直後:
f = open('%s.csv' % name, 'wb')
コードが機能しないのは、%
ファイル。これは文字列形式ではなく、無効でもあります。
あなたは次のようなことができます
_filename = "%s.csv" % name
f = open(filename , 'wb')
_
またはf = open('%s.csv' % name, 'wb')
そして、新しい文字列フォーマット方法で...
f = open('{0}.csv'.format(name), 'wb')
Peixeに非常に似ています。
パラメータとして追加する変数が出現順になっている場合、番号を言及する必要はありません。
f = open('{}.csv'.format(name), 'wb')
さらに良いのは、python 3!
f = open(f'{name}.csv', 'wb')