Cómo agregar una marca de tiempo a un archivo CSV en Python

Requisito previo: módulo de fecha y hora

En este ejemplo, aprenderemos cómo agregar una marca de tiempo a archivos CSV en Python. Podemos agregar fácilmente una marca de tiempo a los archivos CSV con la ayuda del módulo datetime de python. Veamos la implementación paso a paso para agregar una marca de tiempo a los archivos CSV en Python.

Creación de CSV y adición de marca de tiempo

  • Importar módulo csv y datetime. Usaremos el módulo csv para leer y escribir el archivo csv y el módulo datetime para agregar la fecha y hora actual en el archivo csv
  • Toma los datos del usuario.
  • Abra el archivo CSV en modo de lectura y escritura (‘r+’) usando la función open().
    • La función open() abre un archivo y lo devuelve como un objeto de archivo.
    • newline = ‘ ‘ controla cómo funciona el modo universal de nuevas líneas. Puede ser Ninguno, ‘ ‘, ‘\n’, ‘\r’ y ‘\r\n’.
    • write() devuelve un objeto escritor que es responsable de convertir los datos del usuario en una string delimitada.
  • Obtenga la fecha y hora actuales usando la función datetime.now() del módulo datetime.
  • Iterar sobre todos los datos en la variable de filas con la ayuda de un bucle for.
  • Inserte la fecha y hora actual en el índice 0 en cada dato usando la función insert().
  • Escriba los datos usando writerow() en el archivo CSV con la fecha y hora actuales. 

Ejemplo 1: Agregar marca de tiempo al archivo CSV

Python3

# Importing required modules
import csv
from datetime import datetime
  
  
# Here we are storing our data in a
# variable. We'll add this data in
# our csv file
rows = [['GeeksforGeeks1', 'GeeksforGeeks2'],
        ['GeeksforGeeks3', 'GeeksforGeeks4'],
        ['GeeksforGeeks5', 'GeeksforGeeks6']]
  
# Opening the CSV file in read and
# write mode using the open() module
with open(r'YOUR_CSV_FILE.csv', 'r+', newline='') as file:
  
    # creating the csv writer
    file_write = csv.writer(file)
  
    # storing current date and time
    current_date_time = datetime.now()
  
    # Iterating over all the data in the rows 
    # variable
    for val in rows:
          
        # Inserting the date and time at 0th 
        # index
        val.insert(0, current_date_time)
          
        # writing the data in csv file
        file_write.writerow(val)

Producción :

Ejemplo 2 : agregar una marca de tiempo a un archivo CSV

Python3

# Importing required modules
import csv
from datetime import datetime
  
  
# function to write in csv file
def write_in_csv(rows):
  
    # Opening the CSV file in read and
    # write mode using the open() module
    with open(r'YOUR_CSV_FILE.csv', 'r+', newline='') as file:
  
        # creating the csv writer
        file_write = csv.writer(file)
  
        # Iterating over all the data in the rows 
        # variable
        for val in rows:
            
            # writing the data in csv file
            file_write.writerow(val)
  
  
# list to store the values of the rows
rows = []
  
# while loop to take
# inputs from the user
run = ''
while run != 'no':
  
    # lists to store the user data
    val = []
  
    # Taking inputs from the user
    val1 = input("Enter 1st value:- ")
    val2 = input("Enter 2nd value:- ")
    val3 = input("Enter 3rd value:- ")
  
    # storing current date and time
    current_date_time = datetime.now()
  
    # Appending the inputs in a list
    val.append(current_date_time)
    val.append(val1)
    val.append(val2)
    val.append(val3)
  
    # Taking input to add one more row
    # If user enters 'no' then the will loop will break
    run = input("Do you want to add one more row? Type Yes or No:- ")
    run = run.lower()
  
    # Adding the stored data in rows list
    rows.append(val)
  
# Calling function to write in csv file
write_in_csv(rows)

Producción:

 

Adición de marcas de tiempo en un archivo CSV existente

También es posible agregar una marca de tiempo a un archivo CSV que ya contiene algunos datos. Para esto, abra el primer archivo en modo lectura y el segundo archivo en modo escritura. Creación de un objeto lector csv del primer archivo usando la función lector() del módulo csv. reader() devuelve un objeto de lector que iterará sobre líneas en el archivo CSV dado.

Agregue todos los datos almacenados en el primer archivo en la variable de filas usando un bucle for. Cree un objeto escritor del segundo archivo usando la función escritor() del módulo csv. Ahora itere sobre todos los datos en la variable de filas usando un bucle for. Almacene la fecha y hora actual en una variable y luego insértela en los datos en el índice 0 usando la función insert(). Escriba los datos almacenados en File2 usando la función writerow() del módulo csv. 

Ejemplo 1: agregar una marca de tiempo a los datos existentes

Contenido del Archivo1:

Python3

# Importing required modules
import csv
from datetime import datetime
  
  
# creating a list to store the
# existing data of CSV file
rows = []
  
# Opening the CSV file in read mode using 
# the open() module
with open(r'FILE1.csv', 'r', newline='') as file:
      
    # Opening another CSV file to in write mode 
    # to add the data
    with open(r'FILE2.csv', 'w', newline='') as file2:
  
        # creating the csv reader
        reader = csv.reader(file, delimiter=',')
  
        # storing the data of the csv file in a list
        for row in reader:
            rows.append(row)
  
         # creating the csv writer
        file_write = csv.writer(file2)
  
        # Iterating over all the data in the rows
        # variable
        for val in rows:
  
            # storing current date and time in a
            # variable
            current_date_time = datetime.now()
            val.insert(0, current_date_time)
              
            # writing the data in csv file
            file_write.writerow(val)

Producción:

Publicación traducida automáticamente

Artículo escrito por imranalam21510 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *