0

csv ファイルのデータからアクセントを削除しようとしています。したがって、remove_accents 関数 (以下を参照) を使用しますが、そのためには、csv ファイルを utf-8 でエンコードする必要があります。しかし、'encoding' is an invalid keyword argument for this function
Python3 を使用してから python3 ./myscript.py? を実行する必要があるかもしれないというエラーが表示されました。これは正しい方法ですか?または、 python3 をインストールせずにアクセントを削除する別の方法はありますか? どんな助けでも大歓迎です

 #!/usr/bin/env python

import re
import string
import csv
import unicodedata

def remove_accents(data):
    return ''.join(x for x in unicodedata.normalize('NFKD', data) if \
    unicodedata.category(x)[0] == 'L').lower()


reader=csv.reader(open('infile.csv', 'r', encoding='utf-8'), delimiter='\t')
writer=csv.writer(open('outfile.csv', 'w', encoding='utf-8'), delimiter=',')

for line in reader:
    if line[0] != '':
        person=re.split(' ',line[0])

        first_name = person[0].strip().upper()
        first_name1=unicode(first_name)
        first_name2=remove_accents(first_name1)
        if len(person) == 2:
            last_name=person[1].strip().upper()
            line[0]=last_name
        line[15]=first_name2

    writer.writerow(line)
4

1 に答える 1

1

codecs.open()エンコーディングを指定できるようにする場合は、使用する必要があります。また、unidecode.

于 2012-10-07T15:03:05.213 に答える