2016-12-30 2 views
0

Я пытаюсь получить серию метеорологических отчетов с веб-сайта, у меня есть код ниже, который создает необходимые URL-адреса для XML-файлов, которые я хочу, что было бы лучшим способом сохранить возвращенные XML-файлы с разными именами?Как сохранить несколько xml-файлов в python

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) 

Я сохранил один XMls с помощью этого кода;

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, как он будет создан. Я уверен, что другой цикл будет делать, я просто не уверен, как его создать. Любая помощь будет большой, спасибо снова стек.

ответ

0

Вы уже сделали большую часть работы. Просто используйте rows[0] как ваше имя файла. Предполагая, что rows[0] является 'mumbai', тогда rows[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() 
Смежные вопросы