[PYTHON] Memorandum ((1) csv.reader AttributeError, (2) get_sheet_by_name DeprecationWarning, (3) .delete_cols funktioniert nicht)

・ Der heutige Fortschritt Zur Bestätigung der Grundfunktion kann die gesamte in der folgenden Abbildung gezeigte Verarbeitung durchgeführt werden. Es gibt immer noch viele kleine Fehler. image.png Notieren Sie sich die Fehler, die Sie machen (1) Der Fall ist eng.

Eingang


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) 

Ausgabe


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 () ** und ** csv.Reader () **, Attributfehler aufgetreten, weil der Fall falsch war. Denken Sie daran, dass es beim Umschreiben von csv.DictReader häufig vorkommt

② Es ist besser, get_sheet_by_name nicht zu verwenden

Eingang


import openpyxl
wb=openpyxl.load_workbook('/content/drive/My Drive/Colab Notebooks/testB.xlsx')
wb.get_sheet_names()

Ausgabe


/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']

Abschreibung bedeutet veraltet. Es funktioniert, aber es ist nicht so gut, also scheint es verwendet zu werden, und empfohlene Funktionen werden ebenfalls geschrieben. Es ist leicht zu verstehen, wenn Sie mich fragen, aber als ich die Zeichenkette sah, die heraussprang, verschwendete ich Zeit damit, zu fragen: "Was? Warum?" Man muss Englisch richtig lesen, wirklich ...

③ Der hogehoge-Teil des Befehls hogehoge.delete_cols ist der Variablenname.

Eingabe (vor Korrektur)


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')

Die Datei wurde ausgegeben, aber die zweite Spalte von Excel konnte nicht gelöscht werden. Wenn ich es mir jetzt ansehe, bin ich total verrückt, wenn ich verschiedene Seiten esse.

Eingabe (nach Korrektur)


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')

Verwenden Sie wb = openpyxl.load_workbook (), um xlsx-Daten in die Variable wb zu packen Packen Sie mit ws = wb.worksheets [0] die Arbeitsblattdaten der Argumentseite (0) aus den xlsx-Daten in wb in die Variable ws Verwenden Sie ws.delete.cols (2), um die zweite Spalte (Argument) der Arbeitsblattdaten ws zu löschen. Mit wb.save () gespeichert und erfolgreich ... das?

Die endgültige Ausgabe von testC.xlsx sind die Daten, in denen die zweite Spalte verschwunden ist. Warum? Da die ws-Daten von wb kopiert werden, halte ich es für wirklich nutzlos, wenn ich die ws-Daten vor wb.save nicht an wb zurückschicke. Wenn ws = wb.worksheets [] verwendet wird, werden die Daten ws und wb synchronisiert? Wenn Sie nicht wissen, wonach Sie suchen sollen, warum schreiben Sie keine Frage ...?

~~ Postscript ~~ Ich habe den Link angehängt, über den ich die Antwort erhalten habe, dass auf die Sequenz verwiesen wird. https://qiita.com/wellwell3176/questions/d42efcba6482528e1556

Recommended Posts

Memorandum ((1) csv.reader AttributeError, (2) get_sheet_by_name DeprecationWarning, (3) .delete_cols funktioniert nicht)
LocateCenterOnScreen funktioniert nicht mit PyAutoGui
Das Autopep8-Format [VScode] funktioniert nicht. [Python]
Virtualenv funktioniert nicht unter Python 3.5 (Windows)
Der Befehl gqlgen funktioniert nicht mit go's gqlgen
Nach der Installation von php7.2 funktioniert der Befehl php nicht
Jinja2 2.9.6 funktioniert nicht mit der Lambda Python 3-Serie
Wenn die Platzhalterspezifikation mit Pylint nicht funktioniert