簡體   English   中英

將 FOR 循環輸出附加到列表 PYTHON

[英]Append FOR Loop output to List PYTHON

我只是想將 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_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()

您需要在單獨的循環中寫入文件,而不是嵌套循環,或者只是完全刪除嵌套循環。 您還應該with 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() as ..任何東西with open() as ..

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM