![](/img/trans.png)
[英]Python 3: How to call function from another file and pass arguments to that function ?
[英]How to call a function in another file in Python?
我试图在python的另一个文件中的一个文件中调用某些函数,但是每当执行该操作时,我都会不断收到错误消息。 这是我第一个文件myfile.py的代码
def readfile('C:\Users\kprab\Documents\python\data.asc'):
# to read in the data from a file
import pylab
from numpy import genfromtxt
# get data
data = genfromtxt('C:\Users\kprab\Documents\python\data.asc', delimiter=',')
print data
def proj(data):
# to create an image from data
import numpy
from matplotlib import pyplot as plt
x = data
plt.imshow(x, cmap='gray', interpolation='nearest', vmin=0, vmax=255)
plt.savefig('text.png')
plt.show()
然后我试图在另一个文件中使用不同的数据调用这些函数。 该代码如下所示:
import myfile
a = myfile.readfile('C:\Users\kprab\Documents\python\HPOPUP2_201507071256_1')
print a
b = myfile.proj(a)
print b
我得到的错误是
def readfile('C:\Users\kprab\Documents\python\data.asc'):
^
SyntaxError: invalid syntax
任何帮助表示赞赏。 谢谢!
您弄乱了函数定义。
def readfile('C:\Users\kprab\Documents\python\data.asc'):
# to read in the data from a file
import pylab
from numpy import genfromtxt
# get data
data = genfromtxt('C:\Users\kprab\Documents\python\data.asc', delimiter=',')
一定是这样的
def readfile(filename='C:\Users\kprab\Documents\python\data.asc'):
import pylab
from numpy import genfromtext
data = genfromtxt(filename)
请注意,我使用默认值'C:\\Users\\kprab\\Documents\\python\\data.asc'
定义了一个函数参数filename
,并且稍后在函数中使用此filename
。
您对readfile()的参数必须有一个名称。
def readfile(foo='C:\Users\kprab\Documents\python\data.asc'):
bla bla
一些解释:根据您的评论,我认为您需要对功能进行一些说明。 函数是您或任何人都可以重复使用的存储过程。
函数的一个示例是用于将图像保存到程序中的savefig()函数。 如您所见,此函数的创建者既不知道您也不知道您的文件名,她甚至不知道您将如何使用它。 这个概念称为抽象 。她唯一了解的是,要保存图像的程序将提供图像对象和文件名。 给定这两个参数,函数将执行应做的工作,保存!
因此,在您的情况下,您的函数需要一个文件名,您可以使用一个代表该文件名的变量来实现该目的-为了使其能够动态工作,请将其命名为file_name。 因此,任何想要使用您的函数的人都将使用文件名来调用它,对于您的功能来说,它仅仅是一个文件名,因此, 在函数中任何您想要操纵或使用传递的文件名的地方,都可以说file_name 。
您能否澄清一下:在myfile中 ,您是否将函数定义为:
def readfile('C:\\Users\\kprab\\Documents\\python\\data.asc')
吗?
因为如果是这样,这就是为什么您遇到语法错误。 您正在创建一个传递已给定值的函数,而不是传递函数可以使用的参数。 尝试: import pylab from numpy import genfromtxt def readfile(file_path='C:\\Users\\kprab\\Documents\\python\\data.asc'): data = genfromtxt(file_path, delimiter=',') print data return data
然后,您可以在实际代码中输入所需的任何文件路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.