我正在努力解决这个问题.
我有一个这样的列表:
g = ['hey','man','sup']
Run Code Online (Sandbox Code Playgroud)
我想要3个不同的文本文件,如"hey.txt","man.txt","sup.txt".
我用了;
f = open('hey.txt','w')
sys.stdout = f
....
Run Code Online (Sandbox Code Playgroud)
但有没有办法做到这一点?
for x in range(3):
f = open('g[x].txt','w')
Run Code Online (Sandbox Code Playgroud)
使用字符串格式:
for filename in g:
f = open('{}.txt'.format(filename),'w')
Run Code Online (Sandbox Code Playgroud)
你快到了
而不是这个
for x in range(3):
f = open('g[x].txt','w')
Run Code Online (Sandbox Code Playgroud)
做这个:
for x in range(3):
f = open(g[x]+'.txt','w')
Run Code Online (Sandbox Code Playgroud)
实际问题是'g[x].txt'它是一个字符串,并且它的值在每次迭代期间都不会改变,因为g我们使用g [x]返回一个字符串,然后可以附加该字符串'.txt'以形成文件名
你可以用 context manager to open the file object
即)
for x in range(3):
with open(g[x]+'.txt','w') as f:
Run Code Online (Sandbox Code Playgroud)
如果你想要索引和值,那么你可以使用枚举器
即)
for index,value in enumerate(g):
with open(value+'.txt','w') as f:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |