python - 制表符分隔为 csv

标签 python mysql csv

我能够得到它来输出我为了安全而删除的 MYSQL 命令,但是当我尝试将这个制表符分隔的输出写入 CSV 时,我总是收到错误。任何有助于提升 Python 新手的帮助都将不胜感激。

#!/usr/bin/pytho
import sys, csv
import MySQLdb
import os
import mysql.connector
import subprocess
import string
 if __name__ == '__main__':

du = sys.argv[1]
csv_home = '/home/oatey/bundle_' + du + '.csv'
input = sys.stdin
output = sys.stdout


#read and rewrite to file with arguement
new = open("/home/oatey/valid.sql2", "w")    
with open("/home/oatey/bundle.sql")as write_query:
#read_file = write_query.read()

     for line in write_query:
     lr = line.replace('{$$}', du)
     print lr
     new.write(lr)
     new.close()
     write_query.close()         
with open("/home/oatey/valid.sql2") as w:
     mysql_output = subprocess.check_output(MYSQL_COMMAND, stdin=w)    

     #print mysql_output
     b = open("/home/oatey/" + du + ".txt", "r+")
    #",".join("%s" % i for i in mysql_output
     b.write(mysql_output)
     print mysql_output        
b.close()

#read tab-delimited file
with open("/home/oatey/" + du + ".txt", 'rb') as data:    
     cr = data.readlines()
     contents = [line for line in cr]

with open("/home/oatey/" + du + ".csv", "wb") as wd:
     cw = csv.writer(wd, quotechar='', quoting=csv.QUOTE_NONE)
     wd.write(contents)

最佳答案

我打赌你得到的错误是:

TypeError: must be string or buffer, not list

contents 是一个列表,您不能通过write() 编写列表。引自 docs :

file.write(str)

Write a string to the file.

相反,使用 csvwriter.writerows() :

with open("/home/oatey/" + du + ".csv", "wb") as wd:
     cw = csv.writer(wd, quotechar='', quoting=csv.QUOTE_NONE)
     cw.writerows(contents)

关于python - 制表符分隔为 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255090/

相关文章:

python - 无法覆盖 django 中 NumberInput 字段的步骤属性

mysql - 如何将一张表中的id插入到另一张表中?

php - 列出嵌套类别的产品

php - 用于多图像上传的数据库架构

r - 使用 R Shiny 一键下载多个 csv 文件(下载处理程序)

python - 在 Twilio 和 Sendgrid api 中,计划消息的发送时间相差 5 小时 30 分钟

python - DjangoCMS 工具栏缺失

python - 带括号的正则表达式前瞻

linux - 以 CSV 格式打印 JSON 中的所有键和值

PHP 将 MySQL 导出为 CSV - 结果显示为 HTML