Kezdő programozási kérdés, nem tudok txt fájlt beolvasni?
Infóból azt a feladatot kaptuk, hogy oldjuk meg egy érettségi feladat első részfeladatát. Na én már ott elakadtam, hogy nem tudom beolvasni a txt fájlt. Mindig ezt írja ki:
>>> file = open('C:/autok.txt', 'r')
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
file = open('C:/autok.txt', 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'C:/autok.txt'
Mit rontok el? Vagy nem is így kéne? Egy mappába tettem a már előre cegesautok néven elmentett .py fájlomat és a autok.txt-t. Egyszerűen nem értem. Vagy már az eleje is rossz?
Egyértelmű a hibaüzenet:
"No such file or directory: 'C:/autok.txt'"
nincs "C:/autok.txt" nevű (így, egyben, ugyanis a "C:/" nem a C meghajtó gyökérkönyvtárára utal - az C:\ lenne) állomány vagy könyvtár.
"Egy mappába tettem a már előre cegesautok néven elmentett .py fájlomat és a autok.txt-t."
Akkor szimplán relatív útvonalon - a Python szkripthez viszonyítva - hivatkozz rá:
file = open('autok.txt', 'r')
sikerült!!!
open('C:\\Programozás\\autok.txt', 'r')
<_io.TextIOWrapper name='C:\\Programozás\\autok.txt' mode='r' encoding='cp1250'>
Lehetett az a baj, hogy nem tettem kettő \\? valamint most az egész útvonalat megadtam.
file = open('autok.txt', 'r')
Ha ugyanabban a mappában van, akkor ennyi.
#6: #2-es hozzászólásomban ugyanazt mondtam, mint a #5-ös hozzászóló: ha a szkript ugyanabban a könyvtárban van, mint a szövegállomány, akkor jó lesz.
Csak arra kell ügyelni, hogy a python ugyanabban a könyvtárból legyen meghívva, ahol a szkript és a szövegfájl van.
Tehát ha a C:\Programozás\ könyvtáron belül van a szkript illetve a szövegfájl, te a C meghajtó gyökerében vagy és onnan futtatnád a szkriptet eféleképp:
python.exe Programozás\cegesautok.py
akkor hibát fog dobni (mert a C meghajtó gyökerében keresné a szövegfájlt).
Viszont ha a Programozás mappán belül vagy, és így futtatod a szkriptet:
python.exe cegesautok.py
akkor működni fog.
Hibabiztos megoldásnak:
import os
dirname = os.path.dirname(__file__)
file = open(dirname + '\\autok.txt', 'r')
Bővebben:
A dupla \ azért kell, mert a \ jel a Pythonban speciális jelentéssel bír.
Bővebben:
#6:
Elvileg két fájl van a mappádban, a .py file és az autok.txt. Akkor ezeket kell feltölteni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!