![]() |
[INF] Python - def Inlezen()
Hallo,
Ik ben voor school een programma aan het schrijven. Een van de dingen die het programma moet doen is een bepaald bestand inlezen. Nou dacht ik dat ook handig zou zijn als de gebruiker zelf kan zeggen welk bestand er moet worden ingelezen. Maar daar gaat schijnbaar iets fout. Code:
De foutmelding die ik dan krijg is: inlezen2 = open('inlezen1.txt', 'r') IOError: [Errno 2] No such file or directory: 'inlezen1.txt' Kan iemand helpen? Ik kan het ook op school vragen, maar dan moet ik weer wachten tot maandag. En ik wou dit programma dit weekend af maken. |
Bestaat het bestand inlezen1.txt wel, in dezelfde map als waar je script is opgeslagen?
|
Het gaat fout op de manier hoe je de file wilt openen. Je maakt met raw_input een string aan van je file naam. Dit is goed maar daarna wil je het bestand 'inlezen1.txt' openen wat natuurlijk niet bestaat.
Ervan uitgaande dat je bijvoorbeeld het bestand input.txt wilt inlezen. Je vult dan denkt ik zelf 'input' in. Daarna moet er nog '.txt' aan toegevoegd worden op het te openen Bij python gaat dit gewoon met een +. Je 3e regel wordt dan inlezen2 = open(inlezen1+'.txt'). Als je zelf 'input.txt' invult dan kun je gewoon werken met open(inlezen1) |
Je gebruikt inderdaad allerhande dingen door elkaar. Ik zal de bijhorende procedure voor je schrijven, en dan uitleggen:
Code:
def inlezen():
Een andere tip die ik geef: werk niet met namen als 'inlezen1', ... De reden dat je namen kan kiezen in talen als Python is juist om dat te vermijden. Om een goed leesbaar (voor jezelf en voor anderen) programma te maken, maak je best namen die iets meer zeggen over wat ze doen. Ik hou me daar meestal bij Engelse namen (omdat dat voor Python vaak ook aangeraden wordt, en ik het wat stom vind staan om Nederlandse namen in Engelse broncode te zien). Maar als je ergens ziet staan 'print inlezen51346' dan, moet jij weer gaan zoeken wat die variabele inlezen51346 ook alweer was en of het niet per toeval inlezen52346 moest zijn. Als je daarentegen 'print contents' of 'print contentsOfFile' of iets dergelijks zet, dan zie je sneller wat er weergegeven gaat worden. Als je zelf liever Nederlandse namen gebruikt is dat natuurlijk perfect; maar nummers in je namen van variabelen gebruiken; dat is slechts in heel beperkte gevallen nodig, lijkt me. |
Ik heb de code nu inderdaad een beetje aangepast. En ook een aantal andere delen. Het werkt nu inderdaad allemaal veel beter. :D Nu snap ik ook wat er fout was. Ook wel leuk voor de volgende keer.
Thanks. :) |
Alle tijden zijn GMT +1. Het is nu 03:08. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.