J'essaie de créer un fichier un nom de fichier unique, chaque fois que mon script est exécuté, il est uniquement destiné à être hebdomadaire ou mensuel. j'ai donc choisi d'utiliser la date pour le nom du fichier.
f = open('%s.csv', 'wb') %name
c'est là que je reçois cette erreur.
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'
cela fonctionne si j'utilise un nom de fichier statique, y a-t-il un problème avec la fonction open, cela signifie que vous ne pouvez pas passer une chaîne comme celle-ci?
nom est une chaîne et a des valeurs telles que:
31/1/2013BVI
Un grand merci pour toute aide
Vous devez mettre % name
juste après la chaîne:
f = open('%s.csv' % name, 'wb')
La raison pour laquelle votre code ne fonctionne pas est que vous essayez de %
un fichier qui n'est pas un formatage de chaîne et qui n'est pas non plus valide.
vous pouvez faire quelque chose comme
filename = "%s.csv" % name
f = open(filename , 'wb')
ou f = open('%s.csv' % name, 'wb')
Et avec la nouvelle méthode de formatage des chaînes ...
f = open('{0}.csv'.format(name), 'wb')
Très similaire à peixe.
Vous n'avez pas à mentionner le nombre si les variables que vous ajoutez en tant que paramètres sont par ordre d'apparition
f = open('{}.csv'.format(name), 'wb')
Encore mieux sont les f-strings dans python 3!
f = open(f'{name}.csv', 'wb')