1

现在我正在编写一个 python 脚本来读取二进制格式(netCDF)的数据和 csv 文件。只是从另一个只接受 csv 文件的程序中再次读取它。

是否有任何选项可以将内存中的 CSV 文件直接提供给第二个程序?某种伪文件?第二个程序认为它正在读取 CSV 文件但实际上只是内存中的文件?

4

2 回答 2

1

您可以使用subprocess模块的管道功能将数据写入其他程序。

import subprocess
proc = subprocess.Popen("/usr/bin/tac", stdin=subprocess.PIPE)  # Output will go to stdout
proc.communicate("hello\nworld\n")  # This data goes to the subprocess.

将输出(或者更确切地说,tac将)

world
hello

编辑:这是假设其他程序支持从标准输入读取。如果没有,您可能可以在类 UNIX 系统上使用 fifos 进行模拟...

于 2013-11-05T08:18:42.937 回答
1

您可以使用tempfile模块:

>>> import tempfile
>>> f = tempfile.NamedTemporaryFile(delete=False)
>>> f.write("Hello World!\nHello World!\n")
>>> f.close()
>>> f=open(f.name)
>>> f.readlines()
['Hello World!\n', 'Hello World!\n']
于 2013-11-05T08:34:16.547 回答