[PYTHON] Lisez le fichier csv et affichez-le dans le navigateur

Aperçu / objectifs

Je ne peux pas interroger le fichier csv au format tabulaire car je n'ai pas Excel installé sur mon ordinateur portable. Une feuille de calcul peut être utilisée comme substitut, mais vous avez besoin d'une connexion Internet pour l'afficher dans une feuille de calcul, et vous ne voulez pas de communication par paquets inutile. Hors ligne suffit pour interroger les fichiers CSV. Lorsque j'ai cherché sur Google de diverses manières, j'ai trouvé que la bibliothèque pandas de python pouvait également lire des fichiers CSV et générer du HTML. Créez un programme qui lit un fichier csv et l'affiche sur un navigateur dans le but d'étudier Python.

environnement

Choses à faire, ordre à faire

  1. Installez les pandas avec pip
  2. Créez un programme python
  3. Afficher dans le navigateur

Installer des pandas avec pip

Exécutez la commande habituelle pip install pandas dans le terminal de VSCode. D'une manière ou d'une autre, une erreur se produit ... Comme il s'agit d'un caractère qui dessine une erreur inattendue avant d'écrire la source, on s'attend à ce qu'une telle erreur se produise.

(1)
ERROR: Could not install packages due to an EnvironmentError: [WinError 5]Accès refusé.: 'c:\\program files\\python38\\lib\\site-packages\\pip-19.2.3.dist-info\\entry_points.txt'
Consider using the `--user` option or check the permissions.

(2)
WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

(1) ... L'accès est refusé ou les autorisations sont affichées, c'est donc probablement une autorité. J'ai abandonné le terminal VSCode, démarré l'invite de commande en tant qu'administrateur et exécuté la commande pip, et l'installation a réussi.

(2) Un avertissement est émis car la version de pip installée avec python3.8.1 est ancienne. La commande affichée dans '' a été exécutée et le pip a été mis à niveau avant l'exécution de (1).

Créer un programme python

Lisez le fichier CSV avec read_csv () de pandas, convertissez les données CSV en

avec to_html () et écrivez-le en html. S'il y a un blanc dans le fichier CSV lu, il sera traité comme une valeur manquante et converti en NaN, donc ne le convertissez pas avec na_filter = False. Le nom du fichier CSV est affiché dans le titre de html.

main.py


import os
import pandas as pd
import sys

def main():
    #Récupère le fichier CSV à partir de l'argument 1
    args = sys.argv
    haserror = False
    csvfile = ''

    #Aucun argument n'est une erreur
    if 1 == len(args):
        print("Aucun fichier CSV n'est spécifié.")
        haserror = True
    else:
        csvfile = args[1]

        #Erreur si le nom du fichier est incorrect
        if os.path.exists(csvfile) == False:
            print("Le fichier spécifié n'existe pas.")
            haserror = True
        
        #S'il ne s'agit pas d'un fichier CSV, une erreur se produira.
        if csvfile.endswith(".csv") == False:
            print("Un fichier autre que le fichier CSV est spécifié.")
            haserror = True
        
    if haserror == True:
        return()
    else:
        print("Convertissez le fichier CSV en html.")

    #Lire le fichier CSV
    csvdata = pd.read_csv(csvfile, na_filter=False)

    #Lire le fichier html
    htmldata = ''
    with open('templete.html',mode='r',encoding='utf-8') as htmlfile:
        htmldata = htmlfile.read()

    #Convertir un fichier CSV en html
    rpdict = { "filename" : os.path.basename(csvfile), "table" : csvdata.to_html() }
    htmldata = htmldata.format(**rpdict)

    #sortie de fichier html
    with open('csvconverted.html',mode='w',encoding='utf-8') as outputhtml:
        outputhtml.write(htmldata)

if __name__== '__main__':
    main()

Avant la conversion html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title> {filename} </title>
        <link rel="stylesheet" type="text/css" href="style.css"/>
    </head>
    <body>
        <div class="csvlist">
            {table}
        </div>
    </body>
</html>

Après la conversion html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title> test.csv </title>
        <link rel="stylesheet" type="text/css" href="style.css"/>
    </head>
    <body>
        <div class="csvlist">
            <table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>Date</th>
      <th>Classement vacances</th>
      <th>Temps de présence</th>
      <th>Laisser le temps</th>
      <th>temps de travail</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>2019/12/1</td>
      <td>Hokyu</td>
      <td>09:00</td>
      <td>13:00</td>
      <td>04:00</td>
    </tr>
    <tr>
      <th>1</th>
      <td>2019/12/2</td>
      <td></td>
      <td>09:00</td>
      <td>21:30</td>
      <td>11:30</td>
    </tr>
    <tr>
      <th>2</th>
      <td>2019/12/3</td>
      <td></td>
      <td>09:00</td>
      <td>21:30</td>
      <td>11:30</td>
    </tr>
    <tr>
      <th>3</th>
      <td>2019/12/4</td>
      <td></td>
      <td>09:00</td>
      <td>21:00</td>
      <td>11:00</td>
    </tr>
    <tr>
      <th>4</th>
      <td>2019/12/5</td>
      <td></td>
      <td>09:00</td>
      <td>20:00</td>
      <td>10:00</td>
    </tr>
    <tr>
      <th>5</th>
      <td>2019/12/6</td>
      <td></td>
      <td>09:00</td>
      <td>20:00</td>
      <td>10:00</td>
    </tr>
    <tr>
      <th>6</th>
      <td>2019/12/7</td>
      <td>Vacances publiques</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <th>7</th>
      <td>2019/12/8</td>
      <td>Hokyu</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
  </tbody>
</table>
        </div>
    </body>
</html>

Regarder en arrière

Cliquez ici pour le produit https://github.com/otowmoyarng/FreeStudyRepo/tree/master/20191228-pythoncsvviewer

Recommended Posts

Lisez le fichier csv et affichez-le dans le navigateur
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
Django ~ Affichons-le sur le navigateur ~
Lire et écrire un fichier csv
Celui qui divise le fichier csv, le lit et le traite en parallèle
Lisez le fichier VTK et affichez la carte des couleurs avec jupyter.
Lisez le fichier csv avec le notebook jupyter et écrivez le graphique l'un sur l'autre
Lire tous les fichiers csv dans le dossier
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
Trouvez-le dans la file d'attente et modifiez-le
[pandas] Méthode de lecture et d'affichage des fichiers .csv
[Python] Lire la ligne spécifiée dans le fichier
Formatez le journal Git et obtenez le nom du fichier validé au format csv
Prédisez la quantité d'énergie utilisée en 2 jours et publiez-la au format CSV
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
Dans bash, "supprimez le fichier s'il existe".
Lire le fichier CSV: pandas
Lire le fichier csv Python
Différentes façons de lire la dernière ligne d'un fichier csv en Python
[Introduction à Pandas] Lire un fichier csv sans nom de colonne et lui donner un nom de colonne
Conversion de Fourier du fichier wav lu par Python, conversion inverse et réécriture
Comment lire les fichiers de numéros de série en boucle, les traiter et les représenter graphiquement
Lire la liste de liens au format csv avec l'outil graphique
Lire le fichier json avec Python, le formater et générer le json
Extrayez les informations de paroles dans le fichier MP3 / MP4 et enregistrez-les dans le fichier de paroles (* .lrc) pour Sony Walkman.
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
Lire et écrire des fichiers
Écrire et lire des fichiers
Afficher le fichier JSON japonais
Enregistrez le modèle pystan et les résultats dans un fichier pickle
Obtenez le type MIME en Python et déterminez le format de fichier
[Python] Afficher le temps écoulé en heures, minutes et secondes (00:00:00)
Affichage en temps réel de la progression du traitement côté serveur sur le navigateur (implémentation de la barre de progression)
Lisez les données de marque de la tyrolienne à partir du fichier csv et effectuez un test arrière
Python dans le navigateur: la recommandation de Brython
Enregistrez le fichier binaire en Python
Vérifiez si le fichier de paramètres est lu de manière simple à comprendre
Recherchez le nom du fichier, y compris le mot et l'extension spécifiés dans le répertoire
Racler le calendrier de Hinatazaka 46 et le refléter dans Google Agenda
Exécutez Pylint et lisez les résultats
Lisez le binaire big endian en Python et convertissez-le en ndarray
DeepL traduit le chat en direct YouTube et l'affiche en temps réel
Conserver et lire l'ordre dans PyYAML
Gratter la liste des magasins membres Go To EAT dans la préfecture de Fukuoka et la convertir en CSV
Lecture et écriture de fichiers CSV Python
L'histoire du "trou" dans le fichier
Lisez le fichier en Python avec un chemin relatif depuis le programme
Lisez l'ancien fichier Word du formulaire d'application Gakushin DC (.doc) à partir de Python et essayez de le faire fonctionner
Gratter la liste des magasins membres Go To EAT dans la préfecture de Niigata et la convertir en CSV
Ignorer # ligne et lire avec les pandas
Créer et lire des paquets de messages en Python
Comment afficher les octets de la même manière en Java et Python
Remplacez le nom du répertoire et le nom du fichier dans le répertoire par une commande Linux.
Lire et formater des fichiers csv mélangés avec des tabulations de virgule avec des pandas Python
[Python] Doux Est-ce doux? À propos des suites et des expressions dans les documents officiels
Mettez le résultat du chat entre guillemets et mettez-le dans une variable