[英]How do I use data from one function in another function in python?
你好,我对 python 很陌生,我想做以下事情:
我有一个打开文件、读取文件、关闭文件并返回数据的函数:
def getFastaFromFile(filename):
""" Read a fasta file (filename) from disk and return
its full contents as a string"""
inf=open(filename)
data=inf.read()
inf.close()
return data
返回的数据是带有字符串的几行。
我想要做的是使用第一个函数中的数据并执行.readlines()
、 .readline()
和.count()
命令的另一个函数
我的第二个功能:
def printTableFromFasta(fastarec):
a= data.readlines()
for i in range(a)
b= data.readline()
c= b.count('A')
print(c)
作为输出,我想打印数据中每一行出现字符串“A”的次数。 我使用此代码遇到的问题是无法识别数据。
首先,您需要将要读取的数据传递到第二个函数中,如下所示
def printTableFromFasta(data):
为了从你的第一个函数中得到这个,尝试返回文件的全部内容
def getFastaFromFile(filename):
with open(filename, 'r') as inf: # handles open and close
data = inf.readlines() # Returns the entire file as a list of strings
return data
你的函数调用看起来像这样
printTableFromFasta(getFastaFromFile(filename))
然后,在你的第二个函数中,你不需要调用readlines
,它已经是一个列表。
def printTableFromFasta(data):
for line in data # look at each line
print(line.count('A')) # count 'A'
编辑:只从第二个功能中读取而不是触摸第一个功能
def printTableFromFasta(filename):
with open(filename, 'r') as inf: # handles open and close
for line in inf.readlines() # look at each line
print(line.count('A')) # count 'A'
请记住,第一个函数中的data
变量是local 。 不能从定义它的函数外部访问它。
例如, getName()
函数返回一个本地称为data
的变量,但您可以通过调用该函数来访问该值。
def getName(user_id):
data = "Your name is " + str(user_id)
return data
# Throws an error, because data in undefined
name = getName("Bobby")
print(data)
# Working code, prints "Your name is Bobby"
name = getName("Bobby")
print(name)
没有禁止从另一个函数内部调用一个函数的规则。 而不是a = data.readlines()
尝试a = getFastaFromFile("dna.fasta')
以及将data = inf.read()
更改为data = inf.readlines()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.