PokoryDoZycia
#programo #naukaprogramowania #python
Dopiero się uczę, nie mam pojęcia czemu jest taki błąd w ścieżce dostępu do pliku. Ktoś coś poratuje?
Chodzi o ścieżkę '10.10\france.txt' wywala mi błąd a lokalizacja na pewno dobra.

2
  • Najlepsze
  • Wszystkie komentarze
koostosh
7
koostosh
@PokoryDoZycia: takie kombinacje jak \n \f \0 \r ... oznaczają pewien niedrukowalny symbol ascii. Na wszelki wypadek zawsze używaj \ jako backslasha (zostanie on skompilowany do pojedynczego, ale unikniesz dzięki temu problemu że backslash może oznaczać coś wiecej)
3
Leliw
Leliw
@PokoryDoZycia: W którymś pliku musi być jakiś znak, którego nie może przetworzyć.

Możesz dodać, aby sprawdzić w którym konkretnie:
except UnicodeDecodeError:
print("In the " + filename + " file exists unicode error.")
1
C.....t
C.....t
@PokoryDoZycia: każde kodowanie obsługuje skończoną liczbę znaków, które możesz z użyciem tego kodowania zapisać. Masz w swoich plikach znaki, których nie ma w domyślnym kodowaniu funkcji open().
1
benedek
@PokoryDoZycia:
co do pierwszego błędu '\f' jest znakiem formatowania, Python interpretuje znaki wewnątrz cudzysłowu. Możesz to obchodzić poprzez dwukrotny '\' lub wyłączyć interpretowanie stosując 'r'. tj.

filenames = [r'.....', r'....', r'10.10\france.txt']
znaki specjalne w python: link
Co do kodowania w Windows, to jest galimatias i magia, ludzie raczej wybierają Linuksa lub Maca. Tak czy siak, w kodowaniu znaków skryptów w PyCharm w ustawieniach wybierz UTF-8 a pliki pythona
1
D.....M
D.....M
@PokoryDoZycia: jak tworzysz ścieżkę, to używaj os.path.join, czyli:

from os.path import join
fname = join('10.10', 'france.txt')
how_much_the(fname)
zakładam, że 10.10 to katalog, który zawiera plik france.txt
1
PokoryDoZycia
@PokoryDoZycia: Tutaj treść błędu :

with open(filename) as file_object:
OSError: [Errno 22] Invalid argument: '10.10\x0crance.txt'
0
PokoryDoZycia
@koostosh: W sensie? Dlaczego nie mogę podać tego jako nazwę pliku?
0
PokoryDoZycia
@koostosh: Dzięki, pomocne. Tylko że teraz mam taki błąd.
0
C.....t
C.....t
@PokoryDoZycia: masz problem z kodowaniem znaków, spróbuj dodać do open(..) encoding='utf-8' jako drugi argument, ewentualnie pokombinuj z innymi kodowaniami
0
PokoryDoZycia
@CytrynowySorbet: Dzięki, właśnie znalazłem ten wątek na jakimś forum. Z czego się bierze taki problem?
0
PokoryDoZycia
@Leliw: @CytrynowySorbet: Dzięki mirki
0
PokoryDoZycia
( ͡° ͜ʖ ͡°)
0
PokoryDoZycia
@benedek: Do tego zadania pobrałem jakieś randomowe klasyki literatury z gutenberg.org, tekst który nie chciał się wczytać był w całości po hiszpańsku xD Teraz się zastanawiam czy po prostu Python nie radzi sobie z tym językiem
0
PokoryDoZycia
@benedek: No i również dziękuję mireczku (⌐ ͡■ ͜ʖ ͡■)
0
benedek
Treść przeznaczona dla osób powyżej 18 roku życia...
0
PokoryDoZycia
@benedek: Lubię takie problemy, jest co w nocy robić : D
0
l.....i
l.....i
@PokoryDoZycia: walczyłem z tym gównem zbyt długo żeby uznać te problemy za możliwe do polubienia
0
PokoryDoZycia
@luzny_lori: ja to robię czysto hobbystycznie to się nie spinam z czasem. Do programowania w pythonie lepiej przejść na Linux ?
0