Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中保存多个xml文件_Python_Xml_Save - Fatal编程技术网

如何在python中保存多个xml文件

如何在python中保存多个xml文件,python,xml,save,Python,Xml,Save,我正在尝试从一个网站获取一系列天气报告,我有下面的代码为我想要的XML创建所需的URL,用不同的名称保存返回的XML的最佳方法是什么 with open('file.csv') as csvfile: towns_csv = csv.reader(csvfile, dialect='excel') for rows in towns_csv: x = float(rows[2]) y = float(rows[1]) url = (

我正在尝试从一个网站获取一系列天气报告,我有下面的代码为我想要的XML创建所需的URL,用不同的名称保存返回的XML的最佳方法是什么

with open('file.csv') as csvfile:
    towns_csv = csv.reader(csvfile, dialect='excel')
    for rows in towns_csv:
        x = float(rows[2])
        y = float(rows[1])
        url = ("http://api.met.no/weatherapi/locationforecast/1.9/?")
        lat = "lat="+format(y) 
        lon = "lon="+format(x)
        text = url + format(lat) + ";" + format(lon)
我用这段代码保存了单个XML

response = requests.get(text)
xml_text=response.text
winds= bs4.BeautifulSoup(xml_text, "xml") 
f = open('test.xml', "w")
f.write(winds.prettify())
f.close()
CSV文件的第一列上有城市名称,理想情况下,我希望在创建每个XML文件时使用这些名称来保存它。我确信另一个for循环可以,我只是不知道如何创建它。
任何帮助都会很好,再次谢谢

你已经完成了大部分工作。只需使用
行[0]
作为文件名。假设
行[0]
为'mumbai',则
行[0]+'.xml'
将为您提供
'mumbai.xml'
作为文件名。您可能需要检查城市名称是否有需要删除的空格等

with open('file.csv') as csvfile:
    towns_csv = csv.reader(csvfile, dialect='excel')
    for rows in towns_csv:
        x = float(rows[2])
        y = float(rows[1])
        url = ("http://api.met.no/weatherapi/locationforecast/1.9/?")
        lat = "lat="+format(y) 
        lon = "lon="+format(x)
        text = url + format(lat) + ";" + format(lon)
        response = requests.get(text)
        xml_text=response.text
        winds= bs4.BeautifulSoup(xml_text, "xml") 
        f = open(rows[0]+'.xml', "w")
        f.write(winds.prettify())
        f.close()