我对Python非常陌生,而不是程序员。我有这样的:如何在同一路径中动态创建包含具有相似名称的文件的对象?
y1990=open('Documents/python/google-python-exercises/babynames/baby1990.html', 'r', encoding='utf8')
y1992=open('Documents/python/google-python-exercises/babynames/baby1992.html', 'r', encoding='utf8')
y1994=open('Documents/python/google-python-exercises/babynames/baby1994.html', 'r', encoding='utf8')
y1996=open('Documents/python/google-python-exercises/babynames/baby1996.html', 'r', encoding='utf8')
y1998=open('Documents/python/google-python-exercises/babynames/baby1998.html', 'r', encoding='utf8')
y2000=open('Documents/python/google-python-exercises/babynames/baby2000.html', 'r', encoding='utf8')
y2002=open('Documents/python/google-python-exercises/babynames/baby2002.html', 'r', encoding='utf8')
y2004=open('Documents/python/google-python-exercises/babynames/baby2004.html', 'r', encoding='utf8')
y2006=open('Documents/python/google-python-exercises/babynames/baby2006.html', 'r', encoding='utf8')
y2008=open('Documents/python/google-python-exercises/babynames/baby2008.html', 'r', encoding='utf8')
我想写一个更succint代码,所以我想到了这一点:
path='Documents/python/google-python-exercises/babynames/baby'
years=[year for year in range(1990,2010,2)]
open(path+str(years[0])+'.html') # works
在另一方面
'y'+str(years[0]) #works fine and creates string 'y1990'
然而,当我尝试到
'y'+str(years[0])=open(path+str(years[0])+'.html')
File "<stdin>", line 1
SyntaxError: can't assign to operator
正如你所看到的我正在尝试创建变量名称并动态打开文件。我已经尝试了多种方法,并且都会产生类似的错误。我还发现otherposts处理我认为是类似的问题,但我无法看到答案如何解决我的情况(很可能是我缺乏Python经验)。人们提到列表或字典是要走的路,这是否也适用于我的问题呢?我将如何去解决这个问题?这甚至是正确的Python方式吗?
是的,只要您发现自己想要动态创建变量,该建议*总是*适用。 –
谢谢大家的回答,真正澄清了我的做法。我会喜欢,但我甚至没有声望做到这一点。你们摇滚。 – xv70