Je voudrais écrire un fichier CSV de largeur fixe, espace délimité et peu cité en utilisant le csv writer de Python. Un exemple de la sortie:écriture de largeur fixe, sortie CSV délimitée par un espace en Python
item1 item2
"next item1" "next item2"
anotheritem1 anotheritem2
Si je
writer.writerow (("{0}: 15s". Format (article1), "{0}: 15s" format. (item2)))
...
puis, avec le séparateur d'espace, la mise en forme est cassé comme soit des citations ou des évasions (selon la csv.QUOTE_ * constante) sont ajoutés en raison des espaces de fin de le formatage des articles:
"item1 " "item2 "
"next item1 " "next item2 "
"anotheritem1 " "anotheritem2 "
Bien sûr, je pourrais mettre en forme tout moi-même:
writer.writerow ((. "{0: 15s} {1}: 15s" Format (article1, article2)))
mais il n'y a pas grand intérêt à utiliser le graveur csv. De plus, je devrais trier manuellement ces cas lorsque l'espace est incorporé dans les éléments et que quoting/escape devrait être utilisé. En d'autres termes, il semblerait que j'aurais besoin d'une constante csv "QUOTE_ABSOLUTELYMINIMAL" (non existante) qui agirait comme la variable "QUOTE_MINIMAL" mais ignorerait aussi les espaces de fin.
Existe-t-il un moyen d'obtenir le comportement "QUOTE_ABSOLUTELYMINIMAL" ou un autre moyen d'obtenir une sortie CSV délimitée par un espace et de largeur fixe à l'aide du module CSV de Python?
La raison pour laquelle je veux la fonctionnalité de largeur fixe dans un fichier CSV est une meilleure lisibilité. Il sera donc traité en CSV à la fois en lecture et en écriture mais mieux lisible en raison de la structure de la colonne. La lecture n'est pas un problème car l'option skipinitialspace de csv prend soin d'ignorer les espaces supplémentaires. À ma grande surprise, l'écriture semble être un problème ...
EDIT: Je conclus qu'il est impossible de réaliser avec le plugin csv actuel. Ce n'est pas une option intégrée et je ne vois pas de méthode raisonnable pour la réaliser manuellement car il semble qu'il n'y ait aucun moyen d'écrire des délimiteurs supplémentaires par l'auteur csv de Python sans les citer ni les échapper. Ainsi, je vais probablement écrire mon propre csv.
Merci pour votre réponse. Cependant, le code que vous liez n'utilise pas le plugin csv de Python et n'est pas destiné à la sortie csv. Il est certainement possible d'écrire mon propre csv mais j'espérais qu'il y avait un moyen d'utiliser celui de Python dans ce but ... – jvm