Mam ten kod poniżej:

import os

dir = os.listdir('files/')

for file in dir:
    print(file)

    with open(file, 'r') as f:
        x = f.readlines()
        print(x)

Za każdym razem, gdy go uruchamiam, otrzymuję następujący wynik:

TextFile1.txt
[]
TextFile2.txt
[]

W drugiej i czwartej linii wypisuje pustą tablicę, mimo że plik ma zawartość.

TextFile1.txt zawiera:

code 1
email 1
pw 1

A TextFile2.txt zawiera:

code 2
email 2
password 2

Nie jestem pewien, dlaczego drukuje jako pusta tablica, gdy plik nie jest pusty, każda pomoc byłaby mile widziana.

1
user11773594 5 styczeń 2020, 06:29

1 odpowiedź

Najlepsza odpowiedź

os.listdir zwraca tylko nazwy plików, a nie pełną ścieżkę do tych plików, musisz dołączyć nazwę katalogu i nazwę pliku przed otwarciem

import os

BASE_DIR = 'files/'
dir = os.listdir(BASE_DIR)

for file in dir:
    print(file)

    with open(os.path.join(BASE_DIR, file), 'r') as f:
        x = f.readlines()
        print(x)
0
Iain Shelvington 5 styczeń 2020, 03:33