Chcę przeczytać plik txt test_case_tranfromation.txt, który właśnie utworzyłem w moim katalogu, ale za każdym razem, gdy próbuję go otworzyć, pojawia się błąd. Próbowałem: f = open("/Users/stanislavjirak/Documents/...

2
Stanislav Jirak 28 czerwiec 2021, 12:53

5 odpowiedzi

Najlepsza odpowiedź

Jeśli twój plik znajduje się w katalogu głównym, musisz dołączyć nazwę pliku do bieżącego katalogu roboczego.

import os
with open(os.getcwd() +"\\test_case_transformation.txt") as f:
1
AJITH 28 czerwiec 2021, 10:06

Ilekroć pojawi się błąd nie znaleziono pliku, oznacza to, że plik nie jest obecny w tej lokalizacji. Jeśli tworzysz jakiś plik i próbujesz go później przeczytać, spróbuj użyć względnych ścieżek do pisania i czytania. Na przykład.

    from pathlib import Path

    parents = Path(__file__).resolve().parents. // get all the parents of 
    current file location
    root_path = str(parents[0])

    //Create file
    with Path(root_path, "file_name.txt").open(mode="w") as fp:
       fp.write("some data")

    //read file
    with Path(root_path, "file_name.txt").open(mode="r") as fp:
      for line in fp:
         ---do something-----

W ten sposób nie stracisz kontekstu tworzenia i odczytywania plików.

1
Navneet Maurya 28 czerwiec 2021, 10:24

open("test_case_transformation.txt") jest relatywnym względem bieżącego katalogu roboczego. Upewnij się, że zmieniłeś katalog roboczy lub użyj pełnej ścieżki.
Przykładowy katalog:

/tmp
├── test_case_transformation.py
└── test_case_transformation.txt

Test_case_transformation.py:

import os
print(os.path.exists('test_case_transformation.txt'))

Dzwoniąc z basha:

cd /tmp; python test_case_transformation.py                                                                       
True

cd /; python /tmp/test_case_transformation.py                                                                            
False
1
Maurice Meyer 28 czerwiec 2021, 10:25

Istnieją dwa sposoby na pobranie plików w Pythonie. Albo użyjesz pełnej ścieżki bezwzględnej do pliku, np.: "C:/Users/[nazwa użytkownika]/...", albo podasz ścieżkę względną do uruchomionego pliku .py. Na przykład załóżmy, że twój plik .py znajduje się w „C:/Users/[nazwa użytkownika]/file.py”, wtedy możesz uzyskać dostęp do pliku txt znajdującego się w tym samym katalogu, np.: „c:/Users/[ nazwa_użytkownika]/plik.txt” w ten sposób:

with open("file.txt") as f:
    ...
1
nya 28 czerwiec 2021, 10:00

To:

with open("test_case_transformation.txt") as f:
    print(f.read())

Można użyć, jeśli plik .py i plik .txt znajdują się w tym samym katalogu. W przeciwnym razie powinieneś wpisać całą ścieżkę do pliku, który chcesz otworzyć:

with open("/path/to/file/test_case_transformation.txt") as f:
    print(f.read()) 

Jeśli używasz systemu Windows, sugeruję, abyś zrobił to w ten sposób:

with open(r"C:\path\to\file\test_case_transformation.txt") as f:
    print(f.read())
1
T0ny1234 28 czerwiec 2021, 10:08