函数的所有输出都是相同的
All outputs from function are the same
我有读取VCF文件的功能
def readVCF(VCF):
VCF = VCF.readlines()
header = []
data = []
for line in VCF:
if line.startswith('#'):
header.append(line)
else:
data.append(line)
VCF_contents =[]
for line in data:
VCF_contents.extend(line.strip().split('\t'))
for i in range(0, len(VCF_contents), 10):
lines.append(VCF_contents[i : i+10])
该功能如我所愿,但当我多次使用它时就会出现问题。
我想在不同的文件上多次使用这个函数,并同时使用所有这些不同文件的输出。我一直在使用这样的功能:
VCF = open("frogs.txt", 'r')
lines = []
readVCF(VCF)
frogs = lines
VCF.close
VCF = open("rabbits.txt.", 'r')
readVCF(VCF)
rabbits = lines
VCF.close
VCF = open("lizards.txt", 'r')
readVCF(VCF)
lizards = lines
VCF.close
问题是,我的所有输出都是相同的,并且都有来自 frogs.txt
的输出,这是我使用该函数的第一个文件。如何在不获取相同值的情况下重用此函数?
可能,您想添加:
lines = []
在函数的开头和:
return lines
在函数的末尾,并像这样调用它:
VCF = open("frogs.txt", 'r')
frogs = readVCF(VCF)
VCF.close()
或者(可能更好):
with open("frogs.txt", 'r') as VCF:
frogs = readVCF(VCF)
我有读取VCF文件的功能
def readVCF(VCF):
VCF = VCF.readlines()
header = []
data = []
for line in VCF:
if line.startswith('#'):
header.append(line)
else:
data.append(line)
VCF_contents =[]
for line in data:
VCF_contents.extend(line.strip().split('\t'))
for i in range(0, len(VCF_contents), 10):
lines.append(VCF_contents[i : i+10])
该功能如我所愿,但当我多次使用它时就会出现问题。
我想在不同的文件上多次使用这个函数,并同时使用所有这些不同文件的输出。我一直在使用这样的功能:
VCF = open("frogs.txt", 'r')
lines = []
readVCF(VCF)
frogs = lines
VCF.close
VCF = open("rabbits.txt.", 'r')
readVCF(VCF)
rabbits = lines
VCF.close
VCF = open("lizards.txt", 'r')
readVCF(VCF)
lizards = lines
VCF.close
问题是,我的所有输出都是相同的,并且都有来自 frogs.txt
的输出,这是我使用该函数的第一个文件。如何在不获取相同值的情况下重用此函数?
可能,您想添加:
lines = []
在函数的开头和:
return lines
在函数的末尾,并像这样调用它:
VCF = open("frogs.txt", 'r')
frogs = readVCF(VCF)
VCF.close()
或者(可能更好):
with open("frogs.txt", 'r') as VCF:
frogs = readVCF(VCF)