这个问题的背景是,我试图编写一个程序来帮助分析数据。它应该用python3编写,但是它用于的数据类型通常以python无法读取的格式存储。 有一个包可以读取这些数据,但它只与python2兼容。因此,为了读取数据,我想编写一个python2脚本来读取文件并将其转换为numpy数组。我想在我的python3程序中读到这个。(有问题的包是axographio1)。在
一般来说,我想要的是:
给一个(python2)脚本
#reading.py
import numpy
x = numpy.random.random(size=10000)
运行一个(Python3)以某种方式得到x
^{pr2}$重要的是阅读.py由python2解释器执行,因为它不能与python3一起工作。在
下面是我使用的解决方案。 在
subprocess
模块中,我使用带参数Popen
的函数从python3调用python2脚本并收集stdout
。(这意味着所有内容都已打印到控制台。)这是我想在python3中调用的python2代码:
此代码所做的只是从commad行获取参数。(使用
sys
模块,它们可以以python2 script.py arg1 arg2 arg2
的形式传递给命令行中的.py脚本。reading.py
的输出是使用print语句给出的。请注意,我单独打印每个数据,以避免输出被截断。这样,输出就是python2
调用的标准输出stdout
。在Python3的密码是
^{pr2}$它的作用是使用
subprocess
模块作为shell命令python2 reading.py path filename
执行。如上所述,此调用的stdout
是其print
语句的输出。这些是用“UTF-8”编码的bytes
对象。使用decode
方法,可以将它们转换为字符串对象,然后使用float
等函数在类型中进行更改。(这也是为什么分开打印所有内容是有用的,因为必须扫描一个字符串来查找数组或数字是相当烦人的)在readying.py
中,数据在被打印时被明确地分开,这样一旦被读取,就可以很容易地对它们进行结构化。在标签:python3中的axographio读取python3的axographio文件
你有没有试着把数据弄出来
在python 2中
在python 3中
^{pr2}$如果我没记错的话,一个更好的方法是在python2中将numpy数组保存在json文件中(可能使用panda而不是numpy),在python3中则相反
像这样:
有关详细信息,请参见http://www.thegeeklegacy.com/t/how-to-import-without-using-import-in-python/35/#post-103
相关问题 更多 >
编程相关推荐