[Python] file lezen en printen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • efan
  • Registratie: Januari 2001
  • Niet online
ben net begonnen met python, maar loop al de hele avond vast op het lezen van een .txt file die ik eerder heb aangemaakt.
dit is de code die ik nu heb:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import os

showFolder = "/Users/ido/Movies/TV Series/"
extList = [".avi", ".mp4", ".mkv"]
shows = open('shows.txt','w')

for r,d,f in os.walk(showFolder):
    for files in f:
        if (any(files.endswith(x) for x in extList)):
             base, ext = os.path.splitext(files)
             shows.write("{}\n".format(base))
             #vanaf hieronder zou python de bestandsnamen uit de .txt op het scherm moeten printen?
             for line in open('shows.txt','r'):
                print line


wat doe ik fout (qua code :o)?

Acties:
  • 0 Henk 'm!

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

Welke foutmelding krijg je? Wat heb je al geprobeerd? Enz.

Een paar hints:

- kijk naar je whitespace, die klopt nu niet
- bestanden moeten niet alleen geopend worden
- kijk naar je pad

[ Voor 80% gewijzigd door Crayne op 15-03-2012 09:10 ]

Mijn Library Thing catalogus


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 22:22

Matis

Rubber Rocket

Volgens mij moet je ook het bestand sluiten voordat je er uit kunt gaan lezen. Daarnaast doe je nu voor elke show die je vindt, (mocht het wel werken) je hele tekstbestand tot en met die show afdrukken.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • efan
  • Registratie: Januari 2001
  • Niet online
Crayne schreef op donderdag 15 maart 2012 @ 08:40:
Welke foutmelding krijg je? Wat heb je al geprobeerd? Enz.

Een paar hints:

- kijk naar je whitespace, die klopt nu niet
- bestanden moeten niet alleen geopend worden
- kijk naar je pad
foutmeldingen krijg ik niet als ik deze code nu uitvoer, hij maakt netjes een .txt bestand aan met de namen van de afleveringen die er nu in staan. dit bestand staat in de huidige map waarvan ik het script uitvoer, dus (geen) pad is neem ik aan goed? wat zou er nog meer moeten staan behalve het bestanden openen met r (read)?
whitespace? ik heb het even nagezocht, bedoel je dat het zo beter is?:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import os

showFolder = "/Users/ido/Movies/TV Series/"
extList = [".avi", ".mp4", ".mkv"]
shows = open('shows.txt','w')

for r,d,f in os.walk(showFolder):
    for files in f:
        if (any(files.endswith(x) for x in extList)):
             base, ext = os.path.splitext(files)
             shows.write("{}\n".format(base))
             shows.close()

#vanaf hieronder zou python de bestandsnamen uit de .txt op het scherm moeten printen?
for line in open('shows.txt','r'):
     print line


ook het sluiten van het bestand maar even toegevoegd zoals Matis zei...

[ Voor 33% gewijzigd door efan op 15-03-2012 10:11 ]


Acties:
  • 0 Henk 'm!

  • efan
  • Registratie: Januari 2001
  • Niet online
Matis schreef op donderdag 15 maart 2012 @ 09:10:
Volgens mij moet je ook het bestand sluiten voordat je er uit kunt gaan lezen. Daarnaast doe je nu voor elke show die je vindt, (mocht het wel werken) je hele tekstbestand tot en met die show afdrukken.
hij hoort inderdaad alle shows weer te geven, die hij netjes in het .txt bestand heeft weggeschreven. of bedoel je iets anders?

Acties:
  • 0 Henk 'm!

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

ido schreef op donderdag 15 maart 2012 @ 10:07:
[...]
foutmeldingen krijg ik niet als ik deze code nu uitvoer, hij maakt netjes een .txt bestand aan met de namen van de afleveringen die er nu in staan.
Ik betwijfel of de afleveringen er ook in staan, maar ik geloof prima dat hij het bestand aanmaakt.
dit bestand staat in de huidige map waarvan ik het script uitvoer, dus (geen) pad is neem ik aan goed? wat zou er nog meer moeten staan behalve het bestanden openen met r (read)?
Dat is niet het pad waar ik het over heb. Je specificeert een pad voor de plek waar je tv series staan. Daar moet je nog eens goed naar kijken.
whitespace? ik heb het even nagezocht, bedoel je dat het zo beter is?:
Dat is inderdaad precies wat Matis en ik bedoelden. Juist gebruik van whitespace is essentieel bij Python.
ook het sluiten van het bestand maar even toegevoegd zoals Matis zei...
Wel toegevoegd, niet met de juiste whitespace. ;)

Even wat beter debuggen, wat waarden printen zodat je ziet wat er wel of niet gezet wordt. Enz.

Mijn Library Thing catalogus


Acties:
  • 0 Henk 'm!

  • efan
  • Registratie: Januari 2001
  • Niet online
bedankt voor de tips, ik ga er vanavond mee aan de slag. en inderdaad bij elk stukje eens wat waarden printen om te zien waar het mis gaat :)

even n.a.v. je bericht hierboven:
aanmaken bestand: dit werkt prima, alle namen van de tv series staan er netjes in.
het pad: het is een mac, dus inderdaad met / en niet \
whitespace: inderdaad wel iets om goed op te letten,. ik heb nooit eerder met python gewerkt namelijk :o

[ Voor 5% gewijzigd door efan op 15-03-2012 11:08 ]


Acties:
  • 0 Henk 'm!

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

ido schreef op donderdag 15 maart 2012 @ 11:07:
even n.a.v. je bericht hierboven:
aanmaken bestand: dit werkt prima, alle namen van de tv series staan er netjes in.
het pad: het is een mac, dus inderdaad met / en niet \
whitespace: inderdaad wel iets om goed op te letten,. ik heb nooit eerder met python gewerkt namelijk :o
Ah. Negeer mijn punt over het pad dan vooral inderdaad. En ja, de whitespace is even wennen, maar je leert het snel. ;)

Mijn Library Thing catalogus

Pagina: 1