Kezdőoldal » Számítástechnika » Programozás » Kezdő programozási kérdés,...

Kezdő programozási kérdés, nem tudok txt fájlt beolvasni?

Figyelt kérdés

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?



2020. ápr. 27. 17:53
1 2
 1/11 anonim ***** válasza:
100%
Olvasd el a hibaüzenetet. C:/autok.txt helyen keresi a txt fileodat, és nem ott van
2020. ápr. 27. 18:02
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
100%

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')

2020. ápr. 27. 18:04
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:
#2 nem sikerül így sem, ahogy te írtad le, kezdek kiborulni :'( Egyszerűen nem tudom mit csinálok rosszul, ugyanazt a hibaüzenetet kapom úgy is, ha a "file =" megoldást választottam, és amikor a hibáson írt C:/-t átírtam C:\-re és létrehoztam bombabiztosan egy mappát a C meghajtón amiben benne van a txt és a python fájl is
2020. ápr. 27. 18:11
 4/11 A kérdező kommentje:

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.

2020. ápr. 27. 18:18
 5/11 anonim ***** válasza:
100%

file = open('autok.txt', 'r')

Ha ugyanabban a mappában van, akkor ennyi.

2020. ápr. 27. 18:27
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:
Mivel az egész mappát fel kell töltenrm majd a classroomba, akkor oda jó lesz amit te írtál, utolsó?
2020. ápr. 27. 20:10
 7/11 anonim ***** válasza:
100%

#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:

[link]


A dupla \ azért kell, mert a \ jel a Pythonban speciális jelentéssel bír.

Bővebben:

[link]

2020. ápr. 27. 20:37
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:
Nagyon szépen köszönöm a segítséget!
2020. ápr. 27. 20:43
 9/11 anonim ***** válasza:
100%

#6:

Elvileg két fájl van a mappádban, a .py file és az autok.txt. Akkor ezeket kell feltölteni.

2020. ápr. 27. 22:03
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:
100%
Arra vigyázz, hogy érettségin csak a relatív elérési út a jó! Tehát ha csak simána fájlnevet írod, és odateszed az adatfájlt a futtatható mellé. Ugyanis kitétel, hogy akkor is működnie kell, ha a megoldást tartalmazó mappát áthelyezik.
2020. ápr. 28. 09:35
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!