csv, Excel-Dateioperationen
1. CSV-Dateioperation
1. Definition
Eine CSV-Datei wird als Datei mit kommagetrennten Werten bezeichnet: Jede Inhaltszeile wird durch ein Komma zwischen verschiedenen Spalten getrennt.
Die csv-Datei kann direkt über Excel geöffnet werden und die Daten können gespeichert und in Form von Zeilen und Spalten angezeigt werden, aber im Vergleich zur Excel-Datei kann sie nur Daten speichern und keine Formeln und Funktionen speichern.
2.csv-Dateilesevorgang
-
CSV-Bibliothek importieren
import csv
-
öffne einen Ordner
open(csv文件路径, 'r', encoding='utf-8') 可以不用手动关闭文件,文件操作结束就关闭文件。 with open('files/data.csv', 'w', encoding='utf-8', newline='') as f: pass
-
Dateilesevorgang
1)csv.reader(文件对象): 获取文件内容返回一个迭代器,以列表为单位返回每一行内容。 2)csv.DictReader(文件对象): 获取文件内容返回一个迭代器,以字典为单位返回第二行开始的每一行内容,第一行内容为字典的键,。
-
Datei schließen
文件对象.close()
-
Ablaufcode des gesamten Lesevorgangs
import csv # 先导包 # 1)创建打开csv文件 f = open('files/电影.csv', 'r', encoding='utf-8', newline='') # 2)获取文件内容 # (1)csv.reader(文件对象): 获取文件内容返回一个迭代器,以列表为单位返回每一行内容。 # reader1 = csv.reader(f) # print(list(reader1)) # (2)csv.DictReader(文件对象):获取文件内容返回一个迭代器,以字典为单位返回第二行开始的每一行内容,第一行内容为字典的键,。 reader2 = csv.DictReader(f) print(list(reader2)) # 3)关闭文件 f.close()
3. CSV-Datei schreiben
-
CSV-Bibliothek importieren
-
öffne einen Ordner
open('files/data.csv', 'w', encoding='utf-8', newline='')
-
Dateischreibvorgang: Writer-Objekt erstellen
1) csv.writer(): Erstellen Sie ein Writer-Objekt, eine Zeile entspricht einer Liste beim Schreiben von Daten.
2) csv.DictWriter(): Erstellen Sie ein Writer-Objekt und schreiben Sie Daten in Wörterbucheinheiten.
-
Datei schließen
文件对象.close()
-
Gesamtcode
with open('files/data.csv', 'w', encoding='utf-8', newline='') as f: # ===========列表写入========== # writer1 = csv.writer(f) # # 一次写入一行 # writer1.writerow(['姓名', '出生日期', '性别', '年龄']) # writer1.writerow(['小明', '19990616', '男', 23]) # # 一次写入多行内容 # writer1.writerows([ # ['小明', '19990616', '男', 23], # ['小花', '19991216', '女', 23] # ]) # ===========字典写入========== writer2 = csv.DictWriter(f, ['姓名', '出生日期', '性别', '年龄']) # 将字典的键写入文件开头 writer2.writeheader() # 一次写入一行内容 writer2.writerow({ '姓名': '小华', '出生日期': '19890101', '性别': '男', '年龄': 33})
2. Virtuelle Umgebung
1. Systemumgebung
安装python就可以为计算机提供一个python的系统环境。
2. Virtuelle Umgebung
程序员根据自己需要创建的python环境。
能创建虚拟环境的前提:存在系统环境。
3. Die Rolle der Umwelt
1)提供Python解释器
2)提供第三方库
虚拟环境可以让第三方库根据类别或者项目分开管理。
4. Empfehlungen für die Verwendung einer virtuellen Umgebung
1)工作时:一个项目一个虚拟环境,且将虚拟环境直接放在项目中。
2)学习时:一类项目一个虚拟环境,不同类别的虚拟环境放在一个地方。
5. Erstellen Sie eine virtuelle Umgebung
-
Erstellen mit pycharm (Windows)
file -> Settings -> Project -> Python Interpreter
Klicken Sie auf den Pfeil im roten Feld, um das Dropdown-Menü zu öffnen, klicken Sie auf Alle anzeigen
und schließlich auf OK, um es zu erstellen Verwenden Sie diese virtuelle Umgebung, um Module in dieser Umgebung zu installieren. -
Mit Direktive erstellen
Drittens, Excel-Dateioperation
1. Kennen Sie die Excel-Datei
- Arbeitsmappe: Eine Excel-Datei ist eine Arbeitsmappe
- Arbeitsblätter: Eine Arbeitsmappe kann mehrere Arbeitsblätter (mindestens eines) enthalten
- Zelle: Eine Zelle ist die Grundeinheit zum Speichern von Daten in einer Excel-Datei
- Zeilen- und Spaltennummern: Bestimmen Sie die Zellenpositionen
2. Lesevorgang für Excel-Datei
-
openpyxl-Bibliothek importieren
import openpyxl
-
Öffnen Sie eine Excel-Datei, um ein Arbeitsmappenobjekt zu erstellen
openpyxl.open(excel文件路径) openpyxl.load_workbook(文件路径)
-
Arbeitsblatt bekommen
工作簿对象.active 工作簿对象.['工作表名称']
-
Zelle bekommen
工作表对象.cell(行号,列号)
-
Zellinhalt bekommen
单元格对象.value
-
Holen Sie sich die maximale Zeilenzahl und maximale Spaltenzahl (gültige Zeilen und gültige Spalten, die die Daten enthalten)
工作表对象.max_row 工作表对象.max_column
-
Gesamter Lesevorgangscode für Excel-Datei
import openpyxl # 1)打开excel文件创建工作簿对象 # workbook = openpyxl.open('files/三国人物数据.xlsx') workbook = openpyxl.load_workbook('files/三国人物数据.xlsx') # 获取工作簿中所有的工作表的表名 result = workbook.sheetnames print(result) # ['全部人物数据', '三个国家的武力', '三个国家武将的武力', '三国武将数据', '三国文官数据'] # 2)获取工作表 sheet1 = workbook.active # 获取1 print(sheet1) sheet2 = workbook['三国武将数据'] # 获取2 print(sheet2) # 3)获取单元格 cell1 = sheet2.cell(8, 1) cell2 = sheet2.cell(12, 1) print(cell1, cell2) # 4)获取单元格内容 print(cell1.value) print(cell2.value) # 5)获取最大行号和最大列号(保存了数据的有效行和有效列) # 工作表对象.max_row # 工作表对象.max_column print(sheet2.max_row) print(sheet2.max_column) # 获取表中内容例子 # 获取第一列所有数据 column1 = [] for row in range(1, sheet2.max_row+1): cell = sheet2.cell(row, 1) column1.append(cell.value) print(column1) # 获取第一列到第3列所有的数据 for col in range(1, 4): column = [] for row in range(1, sheet2.max_row+1): cell = sheet2.cell(row, col) column.append(cell.value) print(column)
3. Schreibvorgang für Excel-Datei
-
openpyxl-Bibliothek importieren
import openpyxl
-
Neues Arbeitsbuch:
a. Erstellen Sie ein neues Arbeitsmappenobjekt – Arbeitsmappe
workbook = openpyxl.Workbook()
Hinweis : Lebenswirklichkeit: Um tatsächlich eine neue Arbeitsmappe zu erstellen, müssen Sie zunächst feststellen, ob die entsprechende Datei der Arbeitsmappe bereits existiert, falls vorhanden, müssen Sie keine neue erstellen.
-
Arbeitsblatt Operationen
a. Arbeitsblatt erstellen - create_sheet
工作簿对象.create_sheet(表名)
Hinweis: Die eigentliche neue Tabelle: Erstellen Sie eine neue Tabelle nur, wenn sie nicht verfügbar ist, und öffnen Sie sie manchmal direkt
b. Arbeitsblatt löschen - entfernen
工作簿对象.remove(工作表对象) 实际中的删除表:有的时候才删除
-
Zellenschreiboperation
单元格对象.value = 数据
-
Dokument speichern
工作簿对象.save(文件路径)
-
Der gesamte Prozesscode des Vorgangs zum Schreiben von Excel-Dateien
import openpyxl # 1)新建工作簿 # 方法一:异常捕获 try: workbook = openpyxl.open('files/students.xlsx') except FileNotFoundError: workbook = openpyxl.Workbook() # 2)新建工作表 # a.创建工作表 # 实际中的新建表:没有的时候才新建,有的时候直接打开 if 'Python' in workbook.sheetnames: sheet = workbook['Python'] else: workbook.create_sheet('Python') # b.删除工作表 # 实际中的删除表:有的时候才删除 if 'Sheet1' in workbook.sheetnames: workbook.remove(workbook['Sheet1']) print(workbook.sheetnames) # 3)单元格的写操作 # 单元格对象.value = 数据 java_sheet = workbook['Java'] java_sheet.cell(1,3).value = '电话' # 增加 java_sheet.cell(2,1).value = None # 删除 java_sheet.cell(2,2).value = 'stu003' # 修改 # 4)保存 workbook.save('files/students.xlsx')