簡體   English   中英

無法打開和讀取 Python 文件夾中的每個文件

[英]Unable to open and read every file in folder in Python

我目前遇到一個問題,我無法 output 第二個文件中的內容,而是輸出第一個文件的內容兩次。 如何創建一個循環來輸出該目錄中每個文件的內容?

我的代碼

import discord
import discord.ext import commands
import os, glob
import uuid
@bot.command()
async def listjobs(ctx):

    embed = discord.Embed(title=f'Jobs', description='Placeholder text that explains how to use this bot')

    alljobs = os.listdir(cwd+'/jobs')
    mylines = []

    for job in alljobs:
        embed.add_field(name='Job ID', value=job.split('.')[0])
        with open(cwd+'/jobs/'+job, 'r+') as f:
            #print(f.readlines())
            for line in f:
                mylines.append(line)
            distance = mylines[1]
            claimedby = mylines[2]
            embed.add_field(name='Distance', value=distance.split(':')[1])
            embed.add_field(name='Claimed by', value=claimedby.split(':')[1])
    await ctx.send(embed=embed)

Output我知道我現在沒有顯示第一行(腿:....)

文本文件 #1

Leg: ksfo to koat
Distance: 1000 miles
Claimed by: no one

文本文件 #2

Leg: klax to kphx
Distance: 550 miles
Claimed by: no one

您正在從列表“mylines”中獲取數據,但您從不清除“mylines”。 您正在附加列表中每個文件的行,但從不刪除它們

所以,線

distance = mylines[1] claimedby = mylines[2]

始終參考第一個文件的第 1 行和第 2 行。

要解決這個問題,您應該將“mylines”的初始化放在循環中,這樣在循環的每次傳遞中,它都會從列表中刪除前面的行。

暫無
暫無

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

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