用Python从网站写入多个文件

用Python从网站写入多个文件,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个.csv文件,从中我使用列“ID”生成指向网站的链接,我想从中下载内容,并将其保存为同一.csv中“name”列的相应名称 代码在第二个for循环之后停止工作,在该循环中,我由于尝试在fasta.write()函数中使用page变量而得到一个TypeError。然而,如果我打印(页面),我就能够输出我希望在每个文件中包含的文本。这是我必须将html转换为字符串的情况吗?我不确定如何从这里开始。对于给定的,如果您打印页面内容,您会注意到它有“b””,这表示它是二进制的 import pan

我有一个.csv文件,从中我使用列“ID”生成指向网站的链接,我想从中下载内容,并将其保存为同一.csv中“name”列的相应名称

代码在第二个for循环之后停止工作,在该循环中,我由于尝试在fasta.write()函数中使用page变量而得到一个TypeError。然而,如果我打印(页面),我就能够输出我希望在每个文件中包含的文本。这是我必须将html转换为字符串的情况吗?我不确定如何从这里开始。

对于给定的,如果您打印页面内容,您会注意到它有“
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)