我想解決這個問題。如何將列表元素分配給python中的不同文本名稱?
我有一個這樣的名單:
g = ['hey','man','sup']
,我想3個不同的文本文件,如 「hey.txt」, 「man.txt」, 「sup.txt」。
我用過;
f = open('hey.txt','w')
sys.stdout = f
....
但是有沒有辦法像這樣做?
for x in range(3):
f = open('g[x].txt','w')
我想解決這個問題。如何將列表元素分配給python中的不同文本名稱?
我有一個這樣的名單:
g = ['hey','man','sup']
,我想3個不同的文本文件,如 「hey.txt」, 「man.txt」, 「sup.txt」。
我用過;
f = open('hey.txt','w')
sys.stdout = f
....
但是有沒有辦法像這樣做?
for x in range(3):
f = open('g[x].txt','w')
使用字符串formatting:
for filename in g:
f = open('{}.txt'.format(filename),'w')
你幾乎沒有
取而代之的是
for x in range(3):
f = open('g[x].txt','w')
這樣做:
for x in range(3):
f = open(g[x]+'.txt','w')
實際問題是'g[x].txt'
這是一個字符串,它的值在每次迭代中都不會改變,因爲我們使用g [x]返回一個字符串,然後可以附加'.txt'
以形成文件名
你可以使用context manager to open the file object
即)
for x in range(3):
with open(g[x]+'.txt','w') as f:
如果你想同時指數和值,那麼你可以使用enumerator
即)
for index,value in enumerate(g):
with open(value+'.txt','w') as f:
'對於以g X:'甚至會更好......特別是如果你更換'x'與'filename'得到表現的變量名。 – swenzel