【发布时间】:2015-09-05 11:49:08
【问题描述】:
我编写了以下代码,但我收到一条错误消息:未定义名称“acc”。我该如何解决?
import csv
with open(r"C:\Users\garfield\Python27\trial.txt") as file, open(r"C:\Users\garfield\Python27\outp.csv", "a+") as f:
x=file.read()
m=x.split()
writer = csv.writer(f, delimiter =",",quoting=csv.QUOTE_MINIMAL)
for i in range(len(m)-1):
if "ACCESSION" in m[i]:
acc=m[i+1]
if '/host' in m[i]:
host1=m[i].split('/host')[1].split('\n')[0]
host2=m[i+1]
host=host1+" "+host2
if "5'UTR" in m[i]:
utr=m[i+1]
data=[acc,host,utr]
writer.writerow(data)
【问题讨论】:
-
您应该发布一个 MCVE,以便人们可以重现您的问题。但请确保为通向
data=[acc,host,utr]的所有路径定义了acc。 -
您是否要在 csv 中写入一行?
-
你在那里做了一些奇怪的事情。您阅读了整个文件,然后将其拆分。那可能没有做你想做的事。然后你用
ifs 检查这三个字符串,但如果在第一个m[i]中没有找到它们中的任何一个,你就会得到那个错误。即使你没有,我也不确定这是否是你想要的,因为这些值会一直存在,直到找到另一个字符串(如果你使用字符串作为标志,这可能是有意义的)。
标签: python python-2.7 csv file-io