・ Progrès d'aujourd'hui Pour confirmer la fonction de base, tous les traitements illustrés dans la figure ci-dessous peuvent être effectués. Il y a encore de nombreuses petites erreurs. Notez les erreurs que vous faites (1) Le boîtier est étanche.
contribution
import csv
csvfile = open('/content/drive/My Drive/Colab Notebooks/testB.csv',encoding="shift-jis")
reader = csv.Reader(csvfile)
for row in reader:
print(row)
production
AttributeError Traceback (most recent call last)
<ipython-input-14-bb1b8be4844f> in <module>()
3 csvfile = open('/content/drive/My Drive/Colab Notebooks/testB.csv',encoding="shift-jis")
----> 4 reader = csv.Reader(csvfile)
5 for row in reader:
AttributeError: module 'csv' has no attribute 'Reader'
** csv.reader () ** et ** csv.Reader () **, une erreur d'attribut s'est produite car la casse était incorrecte. N'oubliez pas que cela semble se produire fréquemment lors de la réécriture à partir de csv.DictReader
② Il vaut mieux ne pas utiliser get_sheet_by_name
contribution
import openpyxl
wb=openpyxl.load_workbook('/content/drive/My Drive/Colab Notebooks/testB.xlsx')
wb.get_sheet_names()
production
/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:3: DeprecationWarning:
Call to deprecated function get_sheet_names (Use wb.sheetnames).
This is separate from the ipykernel package so we can avoid doing imports until
['Sheet1']
La dépréciation signifie obsolète. Cela fonctionne, mais ce n'est pas très bon, il semble donc être utilisé et les fonctions recommandées sont également écrites. C'est facile à comprendre si vous me demandez, mais quand j'ai vu la chaîne de caractères qui sortait, j'ai perdu du temps à demander "Quoi? Pourquoi?" Il faut vraiment lire l'anglais correctement ...
③ La partie hogehoge de la commande hogehoge.delete_cols est le nom de la variable.
Entrée (avant correction)
import openpyxl
wb=openpyxl.load_workbook('/content/drive/My Drive/Colab Notebooks/testB.xlsx')
ws = wb.worksheets[0]
sheet.delete_cols(2)
wb.save('/content/drive/My Drive/Colab Notebooks/testC.xlsx')
Le fichier a été sorti, mais la deuxième colonne d'Excel n'a pas pu être supprimée. Quand je regarde ça maintenant, je suis complètement fou en mangeant divers sites.
Entrée (après correction)
import openpyxl
wb=openpyxl.load_workbook('/content/drive/My Drive/Colab Notebooks/testB.xlsx')
ws = wb.worksheets[0]
ws.delete_cols(2)
wb.save('/content/drive/My Drive/Colab Notebooks/testC.xlsx')
Utilisez wb = openpyxl.load_workbook () pour regrouper les données xlsx dans la variable wb Avec ws = wb.worksheets [0], remplissez la variable ws avec les données de la feuille de calcul de la page argument (0) à partir des données xlsx dans wb. Utilisez ws.delete.cols (2) pour supprimer la deuxième colonne (argument) des données de la feuille de calcul ws. Enregistré avec wb.save () et réussi ... ça?
Le résultat final de testC.xlsx correspond aux données dans lesquelles la deuxième colonne a disparu. Pourquoi? Puisque les données ws sont copiées à partir de wb, j'estime que c'est vraiment inutile si je ne renvoie pas les données ws à wb avant de faire wb.save. Lorsque ws = wb.worksheets [] est utilisé, les données ws et wb sont-elles synchronisées? Si vous ne savez pas quoi chercher, pourquoi n'écrivez-vous pas une question ...?
~~ Postscript ~~ J'ai joint le lien que j'ai reçu la réponse que la séquence sera référencée. https://qiita.com/wellwell3176/questions/d42efcba6482528e1556
Recommended Posts