Introducción al uso de ficheros

De WikiEducator
Saltar a: navegación, buscar


Ficheros

http://docs.python.org.ar/tutorial/inputoutput.html#leyendo-y-escribiendo-archivos

Los ficheros en Python son objetos de tipo file creados mediante la función open(<ruta> [, <modo>])

Modos de apertura

  • r: read, lectura. Tiene que existir antes.
  • w: write, escritura. Si no, existe se crea. Si existe, se sobreescribe el contenido.
  • a: append, añadir.
  • b: binary, binario.
  • +: lectura y escritura
  • U: universal newline

Ficheros con un codec

import codecs
 
f = codecs.open('fichero.txt', 'rU', 'utf-8')
for line in f:
  # linea como *unicode* string

Ejemplos de uso

f = open('texto.txt')
for linea in f:
    print linea
f.close()
with open('texto.txt') as f:
    for linea in f:
        print linea
with open('texto.txt', 'w') as f:
    f.write('texto a escribir')
f.seek(0) # rebobina el fichero
f.seek(0, 2) # coloca lectura/escritura al final


Ejercicios

Icon activity.jpg

Ejercicios

  1. Escribe un programa lista_de_clase.py que pida nombres de alumnos y los introduzca en un fichero (lista_alumnos.txt. Cada alumno irá en una línea diferente. Una nueva función abrirá la lista de alumnos y la mostrará en pantalla, con los alumnos ordenados por orden alfabético.
  2. Escribe un programa temporizador.py que cada 5 segundos escriba el tiempo (hora, minuto, segudos) en una línea. El programa creará el fichero si no existe. Cada vez que tenga que escribir, abrirá el archivo, escribirá en él y lo cerrará.
  3. Escribe un programa troceador.py que pedirá un fichero de una imagen o una canción y la troceará en archivos más pequeños de 521 bytes. El programa irá numerandolos archivos (trozo1, trozo2, etc) Un segundo programa tomará los archivos troceados y recompondrá el archivo original





Ayudas sistema de archivos

Idioma no válido.

Necesita especificar un idioma como esto: <source lang="html4strict">...</source>

lenguajes soportados para sintaxis remarcada:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


)      # devuelve la lista de archivos de una ruta
os.getcwd()             # devuelve la ruta actual
os.path.exists(<ruta>)  # comprueba si existe una ruta. Devuelve True o False

# explora el módulo os y os.path