将整数和字符串列表转换为表或间隔数据,不带逗号或括号

时间:2014-07-11 07:44:09

标签: python python-2.7

我用这个代码从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']

现在我需要修改此输出格式,以便在表格中创建数据,或者只使用空格而不使用逗号,撇号或括号。

1 个答案:

答案 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语句),这可以确保在块完成时文件自动关闭。