【问题标题】:Why np.savetxt doesn't write anything?为什么 np.savetxt 什么都不写?
【发布时间】:2020-06-09 07:46:16
【问题描述】:

感谢您在我的问题上提供的帮助。

我想将我的响应查询附加到现有的 CSV 文件中。我是由this example 实现的,但由于未知原因 - 输出文件保持为空。

这是我的代码的最小 sn-p:

import psycopg2
import numpy as np

# Connect to an existing database
conn = psycopg2.connect(dbname="...", user="...", password="...", host="...")
# Open a cursor to perform database operations
cur = conn.cursor()

f = open('file_name.csv', 'ab') # "ab" for appending

cur.execute("""select * from table limit 10""") # I have another query here but it isn't relevant.
cur_out = np.asarray(cur.fetchall())

直到这里它完美运行。当我print(cur_out) 时,我得到了想要的输出。但在下一步中:

np.savetxt(f, cur_out, delimiter=",", fmt='%s')

文件保持空白,我没有找到原因。

你能帮帮我吗?

感谢帮助。

【问题讨论】:

  • 接受的答案说他们无法重现这个,你能澄清一下情况吗?
  • 不知道怎么说。可能是现有文件中断了我的代码运行,所以删除文件解决了问题。

标签: python numpy csv psycopg2


【解决方案1】:

我不知道怎么告诉你。但是你的代码非常适合我。

我的建议:

  1. 如果您有同名的现有文件,请尝试删除它们并再次执行您的代码,
  2. 尝试更改批量大小。
  3. 尝试将文件名的后缀改为txt或dat。

最好的祝愿。

【讨论】:

  • @ficfic 它有效。它一直有效吗,有一个建议解决了吗?
【解决方案2】:
np.savetxt('file_name.csv', cur_out, delimiter=",", fmt='%s')

【讨论】:

  • 此解决方案与问题不匹配。我想追加行。这个答案重写了整个文件。
  • 这就是 np.savetxt 所做的。您可以检查stackoverflow.com/questions/30376581/… 以进行附加
  • @AlyHosny:他的方法很好。在“a”模式下打开应该忽略重新创建文件。
猜你喜欢
  • 2019-12-10
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 2018-07-13
  • 1970-01-01
  • 2015-05-08
相关资源
最近更新 更多