用Python从网站写入多个文件
我有一个.csv文件,从中我使用列“ID”生成指向网站的链接,我想从中下载内容,并将其保存为同一.csv中“name”列的相应名称 代码在第二个for循环之后停止工作,在该循环中,我由于尝试在fasta.write()函数中使用page变量而得到一个TypeError。然而,如果我打印(页面),我就能够输出我希望在每个文件中包含的文本。这是我必须将html转换为字符串的情况吗?我不确定如何从这里开始。对于给定的,如果您打印页面内容,您会注意到它有“用Python从网站写入多个文件,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个.csv文件,从中我使用列“ID”生成指向网站的链接,我想从中下载内容,并将其保存为同一.csv中“name”列的相应名称 代码在第二个for循环之后停止工作,在该循环中,我由于尝试在fasta.write()函数中使用page变量而得到一个TypeError。然而,如果我打印(页面),我就能够输出我希望在每个文件中包含的文本。这是我必须将html转换为字符串的情况吗?我不确定如何从这里开始。对于给定的,如果您打印页面内容,您会注意到它有“b””,这表示它是二进制的 import pan
b”
”,这表示它是二进制的
import pandas as pd
import requests
from bs4 import BeautifulSoup
df = pd.read_csv('env_sequences.csv')
Namedf = df['Name']
Uniprotdf = df['ID']
for row in Uniprotdf:
theurl = 'https://www.uniprot.org/uniprot/' + row + '.fasta'
page = requests.get(theurl).content
for row in Namedf:
fasta = open(row + '.txt', 'w')
fasta.write(page)
fasta.close()
#Sample website: https://www.uniprot.org/uniprot/P04578.fasta
在打开文件时将“w
”更改为“wb
”,应该可以解决此问题。另外,将与open()
结合使用是处理文件的更具python风格的方法
print (page)
b'>sp|P04578|ENV_HV1H2 Envelope glycoprotein gp160 OS=Human immunodeficiency virus type 1 group M subtype B (isolate HXB2) OX=11706 GN=env PE=1 SV=2\nMRVKEKYQHLWRWGWRWGTMLLGMLMICSATEKLWVTVYYGVPVWKEATTTLFCASDAKA\nYDTEVHNVWATHACVPTDPNPQEVVLVNVTENFNMWKNDMVEQMHEDIISLWDQSLKPCV\nKLTPLCVSLKCTDLKNDTNTNSSSGRMIMEKGEIKNCSFNISTSIRGKVQKEYAFFYKLD\nIIPIDNDTTSYKLTSCNTSVITQACPKVSFEPIPIHYCAPAGFAILKCNNKTFNGTGPCT\nNVSTVQCTHGIRPVVSTQLLLNGSLAEEEVVIRSVNFTDNAKTIIVQLNTSVEINCTRPN\nNNTRKRIRIQRGPGRAFVTIGKIGNMRQAHCNISRAKWNNTLKQIASKLREQFGNNKTII\nFKQSSGGDPEIVTHSFNCGGEFFYCNSTQLFNSTWFNSTWSTEGSNNTEGSDTITLPCRI\nKQIINMWQKVGKAMYAPPISGQIRCSSNITGLLLTRDGGNSNNESEIFRPGGGDMRDNWR\nSELYKYKVVKIEPLGVAPTKAKRRVVQREKRAVGIGALFLGFLGAAGSTMGAASMTLTVQ\nARQLLSGIVQQQNNLLRAIEAQQHLLQLTVWGIKQLQARILAVERYLKDQQLLGIWGCSG\nKLICTTAVPWNASWSNKSLEQIWNHTTWMEWDREINNYTSLIHSLIEESQNQQEKNEQEL\nLELDKWASLWNWFNITNWLWYIKLFIMIVGGLVGLRIVFAVLSIVNRVRQGYSPLSFQTH\nLPTPRGPDRPEGIEEEGGERDRDRSIRLVNGSLALIWDDLRSLCLFSYHRLRDLLLIVTR\nIVELLGRRGWEALKYWWNLLQYWSQELKNSAVSLLNATAIAVAEGTDRVIEVVQGACRAI\nRHIPRRIRQGLERILL\n'
如果这有帮助,请告诉我。您能为有问题的行发布URL吗?所有URL都不是问题,它们似乎都工作正常。我试图将页面内容写入.txt文件的第二个for循环似乎不起作用。我将附加一个指向.csv的链接,从中我可以更好地理解我的意思。两个循环的变量名相同
行
。更改它。谢谢-尽管我仍然很想看看这个特定的URL,因为响应中可能有导致写入操作失败的内容。这个URL应该与我在文章()中包含的URL没有什么不同。我试图访问的所有URL在.fasta之前都有一个不同的字符串
for row in Namedf:
with open ('url.txt','wb') as fasta:
file.write(page)