πŸ”’ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ CSV Ρ„Π°ΠΉΠ»Π° Π½Π° UTF-8 Π² Python: ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄! 🐍

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ CSV Ρ„Π°ΠΉΠ»Π° Π½Π° UTF-8 Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ csv ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ codecs.


import csv
import codecs

input_file = 'имя_вашСго_Ρ„Π°ΠΉΠ»Π°.csv'
output_file = 'Π½ΠΎΠ²ΠΎΠ΅_имя_Ρ„Π°ΠΉΠ»Π°.csv'

# ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» для чтСния с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ
with codecs.open(input_file, 'r', encoding='старая_ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°') as file:
    # ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ содСрТимоС Ρ„Π°ΠΉΠ»Π°
    data = file.read()

# ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для записи с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8
with codecs.open(output_file, 'w', encoding='utf-8') as file:
    # Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ содСрТимоС Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² UTF-8
    file.write(data)
    

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ "имя_вашСго_Ρ„Π°ΠΉΠ»Π°.csv" Π½Π° фактичСскоС имя вашСго CSV Ρ„Π°ΠΉΠ»Π° ΠΈ "старая_ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°" Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ вашСго Ρ„Π°ΠΉΠ»Π°. Новый Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ создан с ΠΈΠΌΠ΅Π½Π΅ΠΌ "Π½ΠΎΠ²ΠΎΠ΅_имя_Ρ„Π°ΠΉΠ»Π°.csv" ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ UTF-8.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Когда Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с CSV Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python, Π²Π°ΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π° соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ. CSV Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… случаях Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»Π° Π½Π° UTF-8.

Для измСнСния ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ CSV Ρ„Π°ΠΉΠ»Π° Π½Π° UTF-8 Π² Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ csv Π² сочСтании с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ codecs. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import csv
import codecs

# ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ исходный Ρ„Π°ΠΉΠ» CSV для чтСния ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ
with codecs.open('input.csv', 'r', encoding='latin-1') as file:
    # Π§ΠΈΡ‚Π°Π΅ΠΌ содСрТимоС CSV Ρ„Π°ΠΉΠ»Π°
    reader = csv.reader(file)

    # ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» CSV для записи с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8
    with codecs.open('output.csv', 'w', encoding='utf-8') as outfile:
        # Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ писатСля CSV для Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
        writer = csv.writer(outfile)

        # Π§ΠΈΡ‚Π°Π΅ΠΌ строки ΠΈΠ· исходного Ρ„Π°ΠΉΠ»Π° ΠΈ записываСм ΠΈΡ… Π² Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ UTF-8
        for row in reader:
            writer.writerow(row)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ исходный Ρ„Π°ΠΉΠ» CSV с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля codecs ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»Π° (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, 'latin-1'). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ строки ΠΈΠ· исходного Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля csv.

ПослС этого ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» CSV для записи с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля codecs ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»Π° (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, 'utf-8'). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм писатСля CSV для Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ строки ΠΈΠ· исходного Ρ„Π°ΠΉΠ»Π° ΠΈ записываСм ΠΈΡ… Π² Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ UTF-8 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ писатСля CSV.

ПослС выполнСния этого ΠΊΠΎΠ΄Π° Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» CSV с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ UTF-8.

НадСюсь, этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΌΠΎΠ³ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ CSV Ρ„Π°ΠΉΠ»Π° Π½Π° UTF-8 Π² Python. Π£Π΄Π°Ρ‡ΠΈ Π² вашСй Ρ€Π°Π±ΠΎΡ‚Π΅!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π Π°Π±ΠΎΡ‚Π° с CSV Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python | Π—Π°ΠΏΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π² CSV Ρ„Π°ΠΉΠ» | ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ CSV Ρ„Π°ΠΉΠ», Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ CSV Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π² CSV.

CSV Encoding to UTF-8 format

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

🐍 Как ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΈΡ‚ΠΎΠ½Π° ΠΎΡ‚ сСтчатого? ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ для Ρ€Π°Π·Π±ΠΎΡ€Π°

πŸ”₯ 7 способов ΠΊΠ°ΠΊ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π·Π°Ρ‚Ρ€Π°Ρ‚!

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ JSON Ρ„Π°ΠΉΠ» Π² Python: простоС объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ πŸ“š

πŸ”’ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ CSV Ρ„Π°ΠΉΠ»Π° Π½Π° UTF-8 Π² Python: ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄! 🐍

πŸ”’ Как ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡ‚ΡŒ числа Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ Π΄ΠΎ 4 Π·Π½Π°ΠΊΠΎΠ² послС запятой?

⚑️Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ getenv Π² Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…?

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Python Π² Java: простой Π³Π°ΠΉΠ΄ с подробностями ✨