我有一個(gè)文件,.csv 文件中的一些行由于行中某些字段中的時(shí)髦字符而阻塞了數(shù)據(jù)庫(kù)導(dǎo)入。我已經(jīng)搜索過(guò),找到了關(guān)于如何在 Python 3 中替換非 ascii 字符的文章,但沒(méi)有任何效果。當(dāng)我在 vi 中打開(kāi)文件并執(zhí)行 :set list 時(shí),在不應(yīng)該存在的行的末尾有一個(gè) $,而在下一行的開(kāi)頭有 ^I^I。這兩行應(yīng)該是一條連線,沒(méi)有 ^I 。我知道 $ 是行的結(jié)尾 '\n' 并試圖替換它們,但沒(méi)有任何效果。我不知道 ^I 代表什么,可能是一個(gè)制表符。我試過(guò)這個(gè)功能無(wú)濟(jì)于事:def remove_non_ascii(text): new_text = re.sub(r"[\n\t\r]", "", text) new_text = ''.join(new_text.split("\n")) new_text = ''.join([i if ord(i) < 128 else ' ' for i in new_text]) new_text = "".join([x for x in new_text if ord(x) < 128]) new_text = re.sub(r'[^\x00-\x7F]+', ' ', new_text) new_text = new_text.rstrip('\r\n') new_text = new_text.strip('\n') new_text = new_text.strip('\r') new_text = new_text.strip('\t') new_text = new_text.replace('\n', '') new_text = new_text.replace('\r', '') new_text = new_text.replace('\t', '') new_text = filter(lambda x: x in string.printable, new_text) new_text = "".join(list(new_text)) return new_text是否有一些工具可以準(zhǔn)確地告訴我這個(gè)令人討厭的角色是什么,然后找到一種方法來(lái)替換它?我像這樣打開(kāi)文件(.csv 被保存為 UTF-8)f_csv_in = open(csv_in, "r", encoding="utf-8")下面是兩行,應(yīng)該是問(wèn)題非 ascii 字符可見(jiàn)的一行。這兩行應(yīng)該是一行。注意第 37 行末尾的 $,第 38 行以 ^I^I 開(kāi)頭。vi 顯示的部分問(wèn)題是第 37 行有一個(gè)新行 $,我不希望它出現(xiàn)在那里。這應(yīng)該是一行。37 Cancelled,01-19-17,,basket,00-00-00,00-00-00,,,,98533,SingleSource,,,17035 Cherry Hill Dr,"L/o 1-19-17 @ 11:45am$38 ^I^IVictorville",SAN BERNARDINO,CA,92395,,,,,0,,,,,Lock:6111 ,,,No,No,,0.00,0.00,No,01-19-17,0.00,0.00,,01-19-17,00-00-00,,provider,,,Unread,00-00-00,,$
查看完整描述