Persistiendo Archivos en Python 3: Manipulación de archivos en Python

Поделиться
HTML-код
  • Опубликовано: 27 дек 2024

Комментарии • 49

  • @quantumbracket6995
    @quantumbracket6995 5 лет назад +89

    no sabia que freddie mercury sabia programar

  • @josealfa04
    @josealfa04 5 лет назад +4

    Excelente explicación y el profesor realmente lo hace increíble. Me parece que es muy bueno el que enseñen bases sólidas!!

  • @lucasrios3196
    @lucasrios3196 5 лет назад +16

    El . Adelante del nombre de un archivo o carpeta en sistemas basados en unix o gnu/linux significa que son ocultos

    • @SamirJzVFX
      @SamirJzVFX 4 года назад

      ALV eso explica muchas cosas xD

  • @30.secondsss
    @30.secondsss 5 лет назад +5

    Excelente video. Muy buena explicación. Saludos #Team_platzi

  • @omartec7964
    @omartec7964 5 лет назад

    muy buen profesor

  • @JavierGonzalez-km7ds
    @JavierGonzalez-km7ds 5 лет назад +2

    una pregunta Por que usar Guion bajo para nombrar las Funciones? "_print_welcome"

    • @emilianoguerrero4984
      @emilianoguerrero4984 5 лет назад +1

      Es solo una convención para decir que esa función o variable es "privada"
      (Esto también depende en parte del lenguaje, en Go me parece que si empieza con minúscula es privada y si es mayúscula publica, y tiene consecuencias reales en cuanto al acceso de estas).

    • @JavierGonzalez-km7ds
      @JavierGonzalez-km7ds 5 лет назад

      @@emilianoguerrero4984 si yo normalmente cada clase o función en python yo la nombro con mayúscula la primera letra de cada palabra y sin espacio (class ImprimirVariable) y nunca me había topado con esa convención gracias por tu aclaración

    • @lucasrios3196
      @lucasrios3196 5 лет назад +4

      @@JavierGonzalez-km7ds lo que pasa es que en python la convención es así:
      Clase: NombreDeLaClase
      Metodo: nombre_metodo():
      Método primado: _nombre_metodo():
      Variable: nombre_variable
      Variable privada: _nombre_variable
      Variable protegida: __nombre_variable
      Constante: NOMBRE_CONSTANTE

  • @caffeinedoom
    @caffeinedoom 6 лет назад

    Excelente clase!

  • @diegobarrera5699
    @diegobarrera5699 5 лет назад

    excelente video

  • @DeaHHone
    @DeaHHone 6 лет назад

    Son grandes Platzi

  • @franciscoapguillen
    @franciscoapguillen 5 лет назад

    Excelente .. en poco tiempo recordé python :D de mi colegio

  • @JC-el3zn
    @JC-el3zn 5 лет назад +6

    Segun se, el proposito de poner un punto al principio de un path o de un archivo como esta en el video, es para indicar que empiese a buscar el path desde el directorio actual.
    Corriganme si estoy mal.

    • @_ferdinandalexa
      @_ferdinandalexa 5 лет назад +4

      Cuando hacemos referencia a una ruta, efectivamente es para señalar que empiece la tarea indicada desde el directorio actual.
      Para el caso mostrado en esta clase es para hacer referencia a un fichero o directorio oculto.
      Fichero/Directorio: ( ".fichero.txt" )
      Path: (" . / ") después del punto colocamos el / para señalar que es un Path.

    • @JC-el3zn
      @JC-el3zn 5 лет назад

      @@_ferdinandalexa Ok, no sabia sobre eso, gracias por el aporte!

    • @anderperez6845
      @anderperez6845 5 лет назад +1

      Pensé que era para indicar que era un archivo del sistema, Linux por lo general lo oculta al usuario.

    • @lucasrios3196
      @lucasrios3196 5 лет назад

      El . Adelante dentro del nombre del archivo o carpeta es para que sea oculto, eso lo podes ver simplemente haciendo un ls, el archivo no aparecerá. Para verlo habrá que ejecutar ls -la

  • @chriswyatt3291
    @chriswyatt3291 5 лет назад +19

    no entendí no vergas pero igual lo vi xd

  • @daniloaltamirano
    @daniloaltamirano 5 лет назад

    genial podríais pasarnos tu configuración de vim

  • @VanromarioA
    @VanromarioA 4 года назад

    todo excelente pero como carajos saltaste al final si por alla pareciera q era al comienzo osea no le encuentro cuerpo al formato del .py, es decir, lo que aprendimos aca se anexa a un interactivo ??

  • @kevinharoldgutierrezramire8307
    @kevinharoldgutierrezramire8307 5 лет назад +4

    Mi profe loco VIM xD

  • @marisbotero5825
    @marisbotero5825 5 лет назад +1

    el mejor profe

  • @temporalsavior1311
    @temporalsavior1311 5 лет назад +2

    El "." indica que es un archivo o carpeta oculto en sistemas UNIX-like,como por ejemplo la carpeta ".ssh" que esta en el directorio del usuario

    • @YeisonAndresCaballero
      @YeisonAndresCaballero 2 года назад

      tan oculto que el sistema python no lo encuentra jajaj ay dios errores que nos ponen a transnochar jje

    • @tupapielrey3978
      @tupapielrey3978 Год назад

      Y que pasa si es sin punto?

  • @spacexenon
    @spacexenon 4 года назад +1

    Alguien amable que postee el código resultante?

    • @oz3r087
      @oz3r087 4 года назад +3

      import sys
      import os
      import csv
      """
      clients = [
      { #Creando un diccionario para Pablo
      'name' : 'Pablo',
      'company' : 'Google',
      'email' : 'pablo@gmail.com',
      'position' : 'Software engineer',
      },
      { #Dicicionario para Ricardo
      'name' : 'Ricardo',
      'company' : 'Facebook',
      'email' : 'richardfb@gmail.com',
      'position' : 'Data engineer',
      }
      ]
      """
      CLIENT_TABLE = '.clients.csv' #El punto es para ocultar el archivo
      CLIENT_SCHEMA = ['name', 'company', 'email', 'position'] #Lista de llaves que usará csv para construir los diccionarios
      clients = []
      def _initialize_clients_from_storage():
      with open(CLIENT_TABLE, mode='r') as f:
      reader = csv.DictReader(f, fieldnames=CLIENT_SCHEMA)
      for row in reader:
      clients.append(row) #Agregando cada fila existente en el reader como si fuera un diccionario
      def _save_clients_to_storage(): #Toma la lista de clientes y la guarda en el archivo
      tmp_table_name = '{}.tmp'.format(CLIENT_TABLE) #Usa una tabla temporal con el mismo nombre de Client table pero en tmp
      with open(tmp_table_name, mode='w') as f:
      writer = csv.DictWriter(f, fieldnames=CLIENT_SCHEMA)
      writer.writerows(clients) #Escribe todos los renglones del archivo
      os.remove(CLIENT_TABLE) #Elimina la tabla temporal
      os.rename(tmp_table_name, CLIENT_TABLE) #Reenombra la nueva tabla con el nombre original (la que se eliminó)
      def create_client(client):
      global clients
      if client not in clients:
      clients.append(client)
      else:
      print('
      \t--- Client already in the client\'s list ---')
      def delete_client (client_id):
      global clients
      for idx, client in enumerate(clients):
      if idx == client_id:
      del clients[idx]
      print('
      \t--- Client deleteted ---')
      elif idx != client_id:
      print('
      \t--- Client name is not in client\'s list ---')
      break
      def update_client(client_id, updated_client): #Recibe el nombre del cliente y su nuevo nombre
      global clients
      if len(clients) - 1 >= client_id:
      clients[client_id] = updated_client #Reemplaza el nuevo nombre
      else:
      print('
      \t--- Client is not in client\'s list ---')
      def list_clients():
      for idx, client in enumerate(clients): #Usando enumerate para ciclar en la lista y saber los índices
      print('{uid} | {name} | {company} | {email} | {position}'.format(
      uid = idx,
      name = client['name'],
      company = client['company'],
      email = client['email'],
      position = client['position']
      ))
      def search_client(clien_name):
      for client in clients:
      if client != client_name:
      continue #Un loop hasta que encuentre el cliente
      else:
      return True #Retorna True cuando lo encuentra
      def _get_client_from_user():
      client = {
      'name' : _get_client_field('name'),
      'company' : _get_client_field('company'),
      'email' : _get_client_field('email'),
      'position' : _get_client_field('position'),
      }
      return client
      def _get_client_field(field_name):
      field = None
      while not field:
      field = input('
      What is the client {}? '.format(field_name))
      return field
      def _print_welcome():
      print('*' * 40)
      print('\tWELCOME TO GEAR SHOPPING')
      print('*' * 40)
      print('What would you like to do?')
      print('[C]reate client ')
      print('[D]elete client ')
      print('[U]pdate client ')
      print('[L]ist clients ')
      print('[S]earch client ')
      if __name__ == '__main__':
      _initialize_clients_from_storage()
      _print_welcome()
      command = input('
      Enter a letter: ')
      command = command.upper()
      os.system('clear')
      if command == 'C':
      client = _get_client_from_user() #Usa la función para pedir valores para el diccionario
      create_client(client) #Manda el diccionario cliente
      print('
      \t--- Contacts updated ---')
      elif command == 'D':
      print('
      \tSelect the contact to delete ')
      list_clients()
      client_id = int(_get_client_field('id'))
      delete_client(client_id)
      elif command == 'U':
      print('
      \tSelect the contact to update ')
      print('
      \tSelect the contact to update ')
      list_clients()
      client_id = int(_get_client_field('id'))
      updated_client = _get_client_from_user()
      update_client(client_id, updated_client)
      elif command == 'L':
      list_clients()
      elif command == 'S':
      client_name = _get_client_field('name')
      found = search_client(client_name)
      if found: #Usando el True devuelto por la función
      print('
      \t--- The client is in the client\'s list ---')
      else:
      print('
      \tThe client {} is not in our client\'s list'.format(client_name)) #Si el valor retornado es False entonces no existe
      else:
      print('.*'*20, '
      \t\tE R R O R
      \t Invalid Command')
      print('*.'*20)
      _save_clients_to_storage()

  • @thejb9902
    @thejb9902 5 лет назад +1

    Para entender mejor... suban el curso completo :V (?

  • @ale_lata
    @ale_lata 5 лет назад +2

    Chihuahua ¿esta es una señal para regresar a mi curso de python?

  • @AngeloKrs878
    @AngeloKrs878 5 лет назад +6

    y luego de programar el profe se fue a dirigir un cartel de drogas

  • @orlandoromo8270
    @orlandoromo8270 5 лет назад +1

    No sabía que Lionel Richie supiera python

  • @diego-garro-molina
    @diego-garro-molina 5 лет назад

    No sabía que el Dr. Eggman sabía programar

  • @KennyRP0
    @KennyRP0 5 лет назад

    me gustaria aprender a programar pero no tengo los recursos que puedo hacer

    • @KennyRP0
      @KennyRP0 5 лет назад

      que me aconsejan

    • @yeraydeniz4757
      @yeraydeniz4757 5 лет назад

      Trabaja y gana dinero.

    • @PROJoeGe
      @PROJoeGe 5 лет назад

      Ya estas en yt, busca tutoriales de lo que quieras hacer

    • @emilianoguerrero4984
      @emilianoguerrero4984 5 лет назад +1

      Solo ocupas ganas y RUclips para empezar, luego a leer documentación y practicar.
      Yo empece a los 12, aprendí a programar sin Internet (sin Internet propio, mis vecinos si tenían pero con cifrado WEP fácil de crackear) y con una mini laptop HP que me regalaron, ahorita tengo 20 años y trabajo como programador. No ocupas gastar nada, si usas Platzi tienes la ventaja de que ellos te dan el camino a seguir pero si no lo puedes pagar todo el conocimiento esta libre!

  • @luismiguelgrajales3851
    @luismiguelgrajales3851 5 лет назад

    Uy eso lo aprendí a las malas en Vb.net

  • @mauriciogonzalez9269
    @mauriciogonzalez9269 5 лет назад

    No sabía que Lionel Richie sabía python

  • @idrogoedixon
    @idrogoedixon 5 лет назад

    .client.csv archivo oculto

  • @JonathanGomezPy
    @JonathanGomezPy 5 лет назад

    el martes andaba queriendo leer un archivo en python, los de platzi son brujos

  • @julioprado3929
    @julioprado3929 Год назад

    es justo lo que buscaba para mi proyecto de la universidad... pero una pena que escribas todo en ingles, no entiendo si son variables o es la manera que pide el programa para funcionar, si escribieras en español uno sabrìa què es variable (lo que podría modificar yo) y qué no (lo que el programa me obliga a poner). Somos latinos, enseñemonos como tales jajaja

  • @santiagoretamozo6084
    @santiagoretamozo6084 4 года назад

    Borat mexicano enseñando Programación!

  • @felipegiraldo3401
    @felipegiraldo3401 5 лет назад +1

    Huy que es todo eso jajaja

  • @suchox
    @suchox 5 лет назад +1

    programador que se respeta, programa en Vim.