--Versuche - außer --Verwenden Sie die Ausnahmebehandlung `` `außer UnicodeDecodeError```, um einen Deode-Fehler in einer Python-Funktion zu erkennen
exeConvertCsvtoTsv.py
from defConvert import CsvToTsv
import sys
#Zieldateipfad
path = sys.argv[1]
#Konvertieren Sie von csv zu tsv
CsvToTsv(path)
convertTav.py
import csv
import sys
def CsvToTsv(path):
#Array zum Lesen
line = []
try:
#Lesen ⇒ Die Codierung von csv zum Lesen ist utf-8 tritt hier also ein Fehler auf
with open(path, "r", newline="", encoding="cp932") as f:
#Leseobjekt erstellen (durch Kommas getrennt)
reader = csv.reader(f, delimiter = ",")
#Lesen
line = [row for row in reader]
#Schreiben
with open(path, "w", newline="", encoding="utf_8") as f:
#Objekterstellung schreiben (tabulatorgetrennt)
writer = csv.writer(f, delimiter = "\t")
#Schreiben Sie alles zusammen
writer.writerows(line)
#Dekodierungsfehler
except UnicodeDecodeError as err:
print(err)
sys.exit()
finally:
#close
f.close
main.ps1
#CSV zu lesen
$csv = "test.csv"
try{
#Dateibestätigung
if((Test-Path $out) -eq $false){
$ret = "No File"
Throw $ret
}
#Konvertieren Sie von CSV zu TSV
$ret = $null
$ret = python exeConvertCsvtoTsv.py $out #$Erhalten Sie das Ausführungsergebnis auf der Python-Seite mit ret
if($null -ne $ret){
Throw $ret
}
}
catch{
Write-Host "SQL Execution Error`r`n$ret"
}
finally{
Write-Host "end"
}
Ergebnis
#Dekodierungsfehler
SQL Execution Error
'cp932' codec can't decode byte 0x85 in position 7: illegal multibyte sequence
end
außer Ausnahmetyp als Alias: `` `` --Decode-Fehler `` `UnicodeDecodeError
--0 Wenn ein Teilungsfehler vorliegt, `ZeroDivisionError
``Recommended Posts