我用这个代码从oracle db中提取数据:
import cx_Oracle
import simplejson
# Database connection
connstr = 'user/password@110.247.112.333:1678/tyu333.website.com'
conn = cx_Oracle.connect(connstr)
curs = conn.cursor()
curs.execute('select PROJ_ID, PROJ_NAME from GMN.GMN_PROJECT')
#Saving the data extracted into a file
f = open('Project-trial.txt', 'w')
for result in curs:
print result
x = list(result)
f.write("%s\n" % str(x))
curs.close()
f.close()
conn.close()
输出是这样的:
[101, 'Smpl_Project1'][102, 'Smpl_Project2' [103, 'Smpl_Project3']
现在我需要修改此输出格式,以便在表格中创建数据,或者只使用空格而不使用逗号,撇号或括号。
答案 0 :(得分:0)
你正在写出行;每一行都是一个序列。你可以在这里使用str.join()
:
with open('Project-trial.txt', 'w') as f:
for result in curs:
f.write("%s\n" % ' '.join([str(c) for c in result]))
或者,使用csv
module;
with open('Project-trial.txt', 'wb') as f:
writer = csv.writer(f, delimiter=' ')
writer.writerows(curs)
这样可以一次性将所有行写入文件。
在两个示例中,我都使用文件对象作为上下文管理器(使用with
语句),这可以确保在块完成时文件自动关闭。