Форум сайта python.su
0
Использую csv module можно ли исключить определенный элемент (переменную) от “закавычивания” ?
import csv
nameconf=testing
titletpcranktable=[“LED-638TPcRankTable”, nameconf, 1023, “{”]
outfile = open('config.txt', ‘w’)
writer = csv.writer(outfile, quotechar = ‘“’, delimiter = ‘,’ ,quoting=csv.QUOTE_QUOTE_ALL, lineterminator='\n')
writer.writerow(titletpcranktable)
outfile.close()
Результат:
”LED-638TPcRankTable“,”testing","1023“,”{“
А необходимо:
”LED-638TPcRankTable“,”testing",1023,“{”
quoting=csv.QUOTE_NONNUMERIC - не предлагать, в остальном коде используются значительно числа.
Офлайн
20
Может просто писать все/или нужное в буфер и тупо заменять?
>>> import csv >>> from cStringIO import StringIO >>> titletpcranktable=["LED-638TPcRankTable", "testing", 1023, "{"] >>> outbuf = StringIO() >>> writer = csv.writer(outbuf, quotechar = '"', delimiter = ',' ,quoting=csv.QUOTE_ALL, lineterminator='\n') >>> writer.writerow(titletpcranktable) >>> outbuf.getvalue() '"LED-638TPcRankTable","testing","1023","{"\n' >>> print(outbuf.getvalue().replace('"1023"','1023')) "LED-638TPcRankTable","testing",1023,"{" >>>
>>> normal_writer = csv.writer(outfile, quotechar = '"', delimiter = ',' ,quoting=csv.QUOTE_ALL, lineterminator='\n') >>> special_writer = csv.writer(outfile, quotechar = '"', delimiter = ',' ,quoting=csv.QUOTE_NONNUMERIC, lineterminator='\n') >>> rows = [("hello", 123, "world"),("line2",321,455),("line3","xyz",123)] >>> for row in rows: ... if row[1] == 123: ... special_writer.writerow(row) ... else: ... normal_writer.writerow(row) ... less testfile.csv "hello",123,"world" "line2","321","455" "line3","xyz","123"
Отредактировано EBFE (Июль 25, 2012 23:17:24)
Офлайн
14
Все принципиально code не юзают?
Офлайн
0
EBFE
Может просто писать все/или нужное в буфер и тупо заменять?ну или действительно фильтроват>>> import csv >>> from cStringIO import StringIO >>> titletpcranktable=["LED-638TPcRankTable", "testing", 1023, "{"] >>> outbuf = StringIO() >>> writer = csv.writer(outbuf, quotechar = '"', delimiter = ',' ,quoting=csv.QUOTE_ALL, lineterminator='\n') >>> writer.writerow(titletpcranktable) >>> outbuf.getvalue() '"LED-638TPcRankTable","testing","1023","{"\n' >>> print(outbuf.getvalue().replace('"1023"','1023')) "LED-638TPcRankTable","testing",1023,"{" >>>>>> normal_writer = csv.writer(outfile, quotechar = '"', delimiter = ',' ,quoting=csv.QUOTE_ALL, lineterminator='\n') >>> special_writer = csv.writer(outfile, quotechar = '"', delimiter = ',' ,quoting=csv.QUOTE_NONNUMERIC, lineterminator='\n') >>> rows = [("hello", 123, "world"),("line2",321,455),("line3","xyz",123)] >>> for row in rows: ... if row[1] == 123: ... special_writer.writerow(row) ... else: ... normal_writer.writerow(row) ... less testfile.csv "hello",123,"world" "line2","321","455" "line3","xyz","123"
Офлайн
0
odnochlen
Все принципиально code не юзают?
Офлайн
173
verstal4ikВарианты предложили, но вопрос зачем? Если результат предназначен для Excel или для своей же программы, которая использует модуль csv, все что нужно csv сам экранирует (если quoting не указывать).
Использую csv module можно ли исключить определенный элемент (переменную) от “закавычивания” ?
titletpcranktable = ['LED-638TPcRankTable""', "tes,ting", "testing", 1023, "{"]
"LED-638TPcRankTable""""","tes,ting",testing,1023,{
Офлайн
173
verstal4ikВот такая иконка на панели
а что это?
````.``..........````````
`.-:--------::::::::::::--.`
`````.-::`` `` ```````````..-:::`
`````.-::` ````````````` ``-..:/``
`````.::/--..--:-..````` ``-/-`:+``
`````-///++--:/+/:--.`..```-+//::``
``..:://+//---://+//::--```-o/-.```
`./////::.....--:///++//```-o:`````
..////+/:--...-://++++/:```:o:.....
...-:/+++++--::++++/::-.``.:o:.....
...../o+/oo--//o+/:-....``-:o:.....
...-//+:-:/:-::/:--..-.```:/+:....`
`.-/oo+:-::////://////--`.//+-`````
`.//+/-........-----::::`.///-`````
`.//+/---.....````````...-+/:-`````
``.-++++++oooooooooooo+++oo/-.`````
````...........-----........```````
```````````````````````````````````
[code]
def some_code():
some statements
[/code]
Отредактировано reclosedev (Июль 26, 2012 09:37:25)
Офлайн
0
reclosedevverstal4ikВарианты предложили, но вопрос зачем? Если результат предназначен для Excel или для своей же программы, которая использует модуль csv, все что нужно csv сам экранирует (если quoting не указывать).
Использую csv module можно ли исключить определенный элемент (переменную) от “закавычивания” ?
Для таких данных:titletpcranktable = ['LED-638TPcRankTable""', "tes,ting", "testing", 1023, "{"]
Результат"LED-638TPcRankTable""""","tes,ting",testing,1023,{
Офлайн