繁体   English   中英

如何在python中的另一个函数中使用一个函数中的数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM