如何在python中不使用import导入

2024-06-28 11:12:17 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题的背景是,我试图编写一个程序来帮助分析数据。它应该用python3编写,但是它用于的数据类型通常以python无法读取的格式存储。 有一个包可以读取这些数据,但它只与python2兼容。因此,为了读取数据,我想编写一个python2脚本来读取文件并将其转换为numpy数组。我想在我的python3程序中读到这个。(有问题的包是axographio1)。在

一般来说,我想要的是:

给一个(python2)脚本

#reading.py
import numpy
x = numpy.random.random(size=10000)

运行一个(Python3)以某种方式得到x

^{pr2}$

重要的是阅读.py由python2解释器执行,因为它不能与python3一起工作。在


Tags: 文件数据py程序numpy脚本格式random
2条回答

下面是我使用的解决方案。 在subprocess模块中,我使用带参数Popen的函数从python3调用python2脚本并收集stdout。(这意味着所有内容都已打印到控制台。)

这是我想在python3中调用的python2代码:

#readying.py
import axographio #this is the python2 package
import os #specific to the problem of reading data
import sys #needed to use arguments from the command line
if __name__=='__main__': #when y
    path = sys.argv[1]
    filename = sys.argv[2]
    os.chdir(path)
    file = axographio.read(filename)
    # print 'done reading files'

    data = file.data

    no_measurements = len(data)
    measurement_len = len(data[0])

    print(no_measurements)
    print(measurement_len)
    for i, name in enumerate(file.names):
        print(name)
    for i in range(no_measurements):
        for j in range(measurement_len):
            print(data[i][j])
        print('next measurement') 
       #this acts as a seperator when reading the data in python3, anything that cannot be converted to a float works

此代码所做的只是从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中

import pickle
pickle.dumps(x)

在python 3中

^{pr2}$

如果我没记错的话,一个更好的方法是在python2中将numpy数组保存在json文件中(可能使用panda而不是numpy),在python3中则相反

像这样:

df = pandas.Data[...]

有关详细信息,请参见http://www.thegeeklegacy.com/t/how-to-import-without-using-import-in-python/35/#post-103

相关问题 更多 >