在python中创建动态文件名
问题描述:
我写了一个函数来创建动态文件,文件名将包含传递给函数的u 2参数。在python中创建动态文件名
def formrequests(carrier,airport):
s=requests.Session()
r=s.get("http://www.transtats.bts.gov/Data_Elements.aspx?Data=2")
soup=BeautifulSoup(r.text)
viewstate_element=soup.find(id="__VIEWSTATE")
viewstate=viewstate_element["value"]
eventvalidation_element=soup.find(id="__EVENTVALIDATION")
eventvalidation=eventvalidation_element["value"]
r = s.post("https://www.transtats.bts.gov/Data_Elements.aspx?Data=2",
data = (
("__EVENTTARGET", ""),
("__EVENTARGUMENT", ""),
("__VIEWSTATE", viewstate),
("__EVENTVALIDATION", eventvalidation),
("CarrierList", carrier),
("AirportList", airport),
("Submit", "Submit")
)
)
f=open("C:\\Users\\JAYASHREE\\Desktop\\Data Analyst Nanodegree\\Data Wrangking with MongoDB\\carrier-airport data files\\%s-%s.html","w" %(carrier,airport))
f.write(r.text)
当运行这个功能它扔我下面的错误:
TypeError Traceback (most recent call last)
<ipython-input-64-3323d46461b0> in <module>()
3 for carrier in carriers:
4 for airport in airports:
----> 5 formrequests(carrier,airport)
<ipython-input-63-258f8611f601> in formrequests(carrier, airport)
17 ("Submit", "Submit")
18 ))
---> 19 f=open("C:\\Users\\JAYASHREE\\Desktop\\Data Analyst Nanodegree\\Data Wrangking with MongoDB\\carrier-airport data files\\%s-%s.html","w" %(carrier,airport))
20 f.write(r.text)
TypeError: not all arguments converted during string formatting
请让我知道如何解决这个问题。
答
带f=open
格式字符串的行不正确。也许尝试:
f=open("C:\\Users\\JAYASHREE\\Desktop\\Data Analyst Nanodegree\\Data Wrangking with MongoDB\\carrier-airport data files\\{0}-{1}.html".format(carrier,airport),"w")
参数超出他们应该在的地方。
答
看起来你在该行上的格式不对。更改此:
f=open("C:\\Users\\JAYASHREE\\Desktop\\Data Analyst Nanodegree\\Data Wrangking with MongoDB\\carrier-airport data files\\%s-%s.html","w" %(carrier,airport))
这样:
f=open("C:\\Users\\JAYASHREE\\Desktop\\Data Analyst Nanodegree\\Data Wrangking with MongoDB\\carrier-airport data files\\%s-%s.html" %(carrier,airport),"w")