IO错误:[Errno 32] 管道损坏

IO错误:[Errno 32] 管道损坏

在 Linux 中写入文件时出现“IOError:[Errno 32] Broken pipe”。

我正在使用 python 读取 csv 文件的每一行,然后写入数据库表。我的代码是

f = open(path,'r') 

command = command to connect to database

p = Popen(command, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE, env=env)

query = " COPY myTable( id, name, address) FROM STDIN WITH  DELIMITER ';' CSV QUOTE   '"'; "

p.stdin.write(query.encode('ascii')) *-->(Here exactly I got the error, p.stdin.write(query.encode('ascii'))
    IOError: [Errno 32] Broken pipe )*

因此,当我在 Linux 中运行此程序时,出现错误“IOError: [Errno 32] Broken pipe”。但是,当我在 Windows7 中运行时,此程序运行正常。

我需要在 Linux 服务器上做一些配置吗?

任何建议都将受到赞赏。谢谢。

答案1

您的管道已损坏 - 子进程已退出。您用于连接数据库的命令已完成。


这可能是与数据库通信的最糟糕的方式。使用与所讨论的数据库类型对应的本机库。我甚至不会尝试列举这种做法不好的所有原因……只需更改它即可。相信我。

相关内容