[Python] Esportare dati float in csv

Giuseppe Costanzi giuseppecostanzi a gmail.com
Mar 13 Feb 2018 12:10:16 CET


2018-02-13 12:00 GMT+01:00 Giuseppe Costanzi <giuseppecostanzi a gmail.com>:
> 2018-02-13 11:42 GMT+01:00 Carlos Catucci <carlos.catucci a gmail.com>:
>>
>>
>> Il 13 feb 2018 11:21 AM, "Giuseppe Costanzi" <giuseppecostanzi a gmail.com> ha
>> scritto:
>>
>>
>>
>>
>> scusa carlos non ho capito, devo sostituire il punto con la virgola?
>> no perche' gia' uso il punto per i decimali, mentre i campi sono
>> separati con la virgola.
>>
>>
>>
>> Allora non dovrebbe prenderli con stringhe. Puoi postare qualche riga di
>> CSV?
>
> come no
>
>  def exporter(self, rs, cols):
>
>         file_name = "%s.xls"%(self.title,)
>         path = tempfile.mktemp (file_name)
>         obj = open(path,'w')
>         print(rs)
>         with obj:
>             writer = csv.writer(obj,delimiter=',')
>             writer.writerow(cols)
>             writer.writerows(rs)
>
>         self.launch(path)
>
> rs = [(2, 0.382, 8.59, 76.4, 2.38, 0.425, 2.68, 1.09, 2.14, 18.3,
> 0.495), (3, 0.687, 625.0, 103.0, 1.92, 0.272, 4.75, 1.07, 2.03, 39.5,
> 0.115)]
>
> e per rispondere a daniele, la prima cosa che ho fatto e' sostituire
> il punto con la virgola
> ma succede la stessa cosa.
>
>>
>> ripeto preferirei farlo oin csv ma credo che come dici dovro' per
>> forza usare qualche libreira ad hoc.
>>
>>
>> Ce ne sono di ottime che permettono di fare tutto, incluso creare altri
>> sheet.
>>
>>
>> p.s.
>> il recordset e' una lista di tuple chiaramente, non come ho scritto sopra
>>
>> Non
>> Questo non credo abbia importanza, a meno che non sia che le tuple vengono
>> trasformare in stringa, ma risulterebbe nel CSV
>>
>> Carlos


questo uno script per simulare il problema.


import csv


class Tester(object):
    def __init__(self,*args, **kwargs):
        super(Tester, self).__init__( )

        self.args = args
        self.kwargs = kwargs

    def exporter(self, rs, cols):

        obj = open("out.csv",'w')
        print(rs)
        with obj:
            writer = csv.writer(obj,delimiter=',')
            writer.writerow(cols)
            writer.writerows(rs)

def main():

    cols = ["a","b","c","d"]

    rs = [(1, 0.382, 8.59, 76.4),
          (2, 0.687, 625.0, 103),]

    foo = Tester()
    foo.exporter(rs, cols)

    input('end')

if __name__ == "__main__":
    main()




>>
>>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> https://lists.python.it/mailman/listinfo/python
>>


Maggiori informazioni sulla lista Python