파이썬 스크립트에 어떤 문제가 있습니까?정의 된 함수는 python2.7에서 for 루프로 사용됩니다.
from BeautifulSoup import BeautifulSoup
import requests
import re
from collections import defaultdict
import itertools
import pandas as pd
def wego(weburl,annot):
print 'Go Term: ', weburl.split('=')[-1]
html=requests.get(weburl).text
soup=BeautifulSoup(html)
desc=r"desc=\".*\""
print "GO leave 2 term:",(re.findall(desc,str(soup))[0].split('"')[1])
pattern=r"Unigene.*A"
idDF = pd.DataFrame(columns=['GeneID']) #creates a new datafram
idDF['GeneID'] = pd.Series(re.findall(pattern,str(soup))).unique()
print "Total Go term is :",idDF.shape[0]
old=pd.read_csv(annot,usecols=[0,7,8])
getset=pd.merge(left=idDF,right=old,left_on=idDF.columns[0],\
right_on=old.columns[0])
updown=getset.groupby(getset.columns[1]).count()
print updown
print "Max P-value: ","{:.3e}".format(getset['P-value'].max())
with open("gourl.txt") as ur:
d=[]
for url in ur:
we=wego(url,annot="file.csv")
d.append(we)
내 gourl.txt 파일은 내 질문에 스크립트가 성공할 수있는 이유 중 하나
http://stackoverflow.com/questions=1
http://stackoverflow.com/questions=2
에 의해 일부 URL을 한 줄 때 gourl.txt 파일에 하나 개의 URL을 때 실패 하나 이상?
오류는 다음과 같습니다 당신이 우리에게 준 스택 추적을 보면
IndexError: list index out of range
IndexErrorTraceback (most recent call last)
<ipython-input-79-a852fe95d69c> in <module>()
2 d=[]
3 for url in ur:
----> 4 we=wego(url,annot="file.csv")
5 d.append(we)
<ipython-input-4-9fdf25e75434> in wego(weburl, annot)
5 soup=BeautifulSoup(html)
6 desc=r"desc=\".*\""
----> 7 print "GO leave 2 term:",(re.findall(desc,str(soup))
[0].split('"')[1])
8 pattern=r"Unigene.*A"
9 idDF = pd.DataFrame(columns=['GeneID']) #creates a new dataframe
IndexError: list index out of range
'requests.get()'에 전달되는'weburl'을 확인 했습니까? 확인해야 할 또 다른 것은'requests.get()'응답 객체의 상태 코드입니다. – heyiamt
당신의 코드를 실행하려고 시도하고'IndentationError : 28 번 줄에 들여 쓰기 된 블록이 예상됩니다. '당신이 실행중인 정확한 코드라고 확신합니까? – Kevin
@Kevin 예, 성공적으로 실행했습니다. '거래 = (url, annoy = "file.csv")'코드는 문제가되지 않습니다. – hope