现在我正在编写一个python脚本来读取二进制格式(netCDF)和csv文件中的数据。只能从另一个只接受csv文件的程序中再次读取它。
是否可以选择将内存中的CSV文件直接提供给第二个程序? 某种伪文件?第二个程序认为它正在读取CSV文件但实际上只是内存文件?
答案 0 :(得分: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模拟这个...
答案 1 :(得分: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']