python csv 换行
python csv new line
iam 使用此代码将 db table 转换为 csv 文件,它正在转换为 csv 但不是使用双引号换行/换行,有人可以帮助我
import MySQLdb
import csv
conn = MySQLdb.connect(user='root', db='users', host='localhost')
cursor = conn.cursor()
cursor.execute('SELECT * FROM users.newusers')
ver = cursor.fetchall()
ver1 = []
for ve in ver:
ve = str(ve).replace("', '","|").replace(", '","|").replace(","," ").replace(" "," ").replace("|",",")
ver1.append(ve)
print ver1
csv_file = open('filename', 'wb')
writer = csv.writer(csv_file)
writer.writerow(ver1) csv_file.close()
当前输出
"(114L,New,9180971675,Ravi Raju,RAJRAVI,National,#N.A,No,No,No,#N.A,OS40,005056BB0803,192.168.0.1,no,yes')","(115L,New,9180971676,Rajendran Mohan,rajemoh,National,#N.A,No,No,No,#N.A,OS40,005056BB0803,192.168.10.10,no,yes')"
预期结果
114L,New,9180971675,Ravi Raju,RAJRAVI,National,#N.A,No,No,No,#N.A,OS40,005056BB0803,192.168.0.1,no,yes
115L,New,9180971676,Rajendran Mohan,rajemoh,National,#N.A,No,No,No,#N.A,OS40,005056BB0803,192.168.10.10,no,yes
SQL 查询将 return 在来自 fetchall()
的元组列表中为您提供结果。在您当前的方法中,您遍历此列表但在每个元组上调用 str()
,从而将整个元组转换为其字符串表示形式。
相反,您可以对每个元组使用列表推导式,将其转化为嵌套列表格式并应用您的 replace()
操作。
for ve in ver:
ver1.append([str(item).replace(<something>) for item in ve])
在最后一步中,您使用 csv.writerow()
,它被设计为在 for
循环中使用。如果您的列表以 [[row1], [row2]]
形式嵌套,那么您只需将其更改为 writerows。此外,最好使用上下文管理器 with
来处理文件,因为这会在操作完成后自动关闭文件。
with open('filename.csv', 'wb') as csv_file:
writer = csv.writer(csv_file)
writer.writerows(ver1)
iam 使用此代码将 db table 转换为 csv 文件,它正在转换为 csv 但不是使用双引号换行/换行,有人可以帮助我
import MySQLdb
import csv
conn = MySQLdb.connect(user='root', db='users', host='localhost')
cursor = conn.cursor()
cursor.execute('SELECT * FROM users.newusers')
ver = cursor.fetchall()
ver1 = []
for ve in ver:
ve = str(ve).replace("', '","|").replace(", '","|").replace(","," ").replace(" "," ").replace("|",",")
ver1.append(ve)
print ver1
csv_file = open('filename', 'wb')
writer = csv.writer(csv_file)
writer.writerow(ver1) csv_file.close()
当前输出
"(114L,New,9180971675,Ravi Raju,RAJRAVI,National,#N.A,No,No,No,#N.A,OS40,005056BB0803,192.168.0.1,no,yes')","(115L,New,9180971676,Rajendran Mohan,rajemoh,National,#N.A,No,No,No,#N.A,OS40,005056BB0803,192.168.10.10,no,yes')"
预期结果
114L,New,9180971675,Ravi Raju,RAJRAVI,National,#N.A,No,No,No,#N.A,OS40,005056BB0803,192.168.0.1,no,yes
115L,New,9180971676,Rajendran Mohan,rajemoh,National,#N.A,No,No,No,#N.A,OS40,005056BB0803,192.168.10.10,no,yes
SQL 查询将 return 在来自 fetchall()
的元组列表中为您提供结果。在您当前的方法中,您遍历此列表但在每个元组上调用 str()
,从而将整个元组转换为其字符串表示形式。
相反,您可以对每个元组使用列表推导式,将其转化为嵌套列表格式并应用您的 replace()
操作。
for ve in ver:
ver1.append([str(item).replace(<something>) for item in ve])
在最后一步中,您使用 csv.writerow()
,它被设计为在 for
循环中使用。如果您的列表以 [[row1], [row2]]
形式嵌套,那么您只需将其更改为 writerows。此外,最好使用上下文管理器 with
来处理文件,因为这会在操作完成后自动关闭文件。
with open('filename.csv', 'wb') as csv_file:
writer = csv.writer(csv_file)
writer.writerows(ver1)