将FOR循环输出追加到列表PYTHON
我只是想把for循环的输出写入txt文件将FOR循环输出追加到列表PYTHON,python,list,for-loop,Python,List,For Loop,我只是想把for循环的输出写入txt文件 for filename in glob.glob('/home/*.txt'): file_metadata = { 'name': 'files.txt', 'mimeType': '*/*' } media = MediaFileUpload(filename, mimetype='*/*', resumable=True) file = drive_service.files().create(body=file_meta
for filename in glob.glob('/home/*.txt'):
file_metadata = { 'name': 'files.txt', 'mimeType': '*/*' }
media = MediaFileUpload(filename, mimetype='*/*', resumable=True)
file = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()
links = []
links.append(file.get('id'))
with open("ids.txt", "w") as file:
for e in links:
file.write(str(e))
file.close()
您需要在单独的循环中写入文件,而不是嵌套循环,或者只需完全删除嵌套循环。您还应该使用open()从
中删除close()
,它在写入文件后处理关闭操作
with open("ids.txt", "w") as f:
for filename in glob.glob('/home/*.txt'):
file_metadata = { 'name': 'files.txt', 'mimeType': '*/*' }
media = MediaFileUpload(filename, mimetype='*/*', resumable=True)
file = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()
f.write(f'{file.get("id")}\n')
# or if your Python version is older than 3.6
f.write(str(file.get("id")) + '\n')
您不应将同一变量file
用于两个不同的目的。而且您不应该close()
使用with open()打开的任何内容作为..
:
links = []
for filename in glob.glob('/home/*.txt'):
file_metadata = { 'name': 'files.txt', 'mimeType': '*/*' }
media = MediaFileUpload(filename, mimetype='*/*', resumable=True)
file = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()
links.append(file.get('id'))
with open("ids.txt", "w") as fout:
fout.write('\n'.join(links))
您忘记了链接的分隔符,它们将被写为一个巨大的行,不可能彼此分开。