У меня есть файл, некоторые строки в файле .csv, которые мешают импорту базы данных из-за прикольных символов в некотором поле в строке.
Я искал, нашел статьи о том, как заменить не-ascii символы в Python 3, но ничего не работает.
Когда я открываю файл в vi и выполняю: set list, в конце строки, где ее не должно быть, стоит $, и ^ I ^Я в начале следующей строки.Две строки должны быть одной соединенной линией и не ^ я там.Я знаю, что $ является концом строки '\ n' и пытался заменить их, но ничего не работает.
Я не знаю, что представляет собой ^ I, возможно, вкладка.
Я пробовал эту функцию безрезультатно:
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
Есть ли какой-нибудь инструмент, который точно покажет мне, что это за оскорбительный символ, и затем найдет способ заменить его?
Я открываю файл следующим образом (файл .csv был сохранен как UTF-8)
f_csv_in = open(csv_in, "r", encoding="utf-8")
Ниже приведены две строки, которые должны быть одной с видимой проблемой, не являющейся символами ascii.
Эти две строки должны быть одной строкой.Обратите внимание на $ в конце строки 37, а строка 38 начинается с ^ I ^ I.
Часть проблемы, которую показывает vi, заключается в том, что в строке 37 есть новая строка $, где я надеваюне хочу, чтобы это было.Это должна быть одна строка.
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,,$