2016-05-29 2 views
0

Я пытаюсь заменить все вкладки пробелом, чтобы я мог поместить выделенный текст Coma в одну строку в другой файл. Теперь мой код выглядит следующим образом:UnicodeDecodeError by python regex

from __future__ import print_function 
import re 
import ast 

f = open('sample_test.txt', 'r') 
g = open('sample_test1.txt', 'w') 

for line in f: 
     c = re.sub(r'\R', r' ', line.rstrip()) 
     print (c, file = g) 
f.close() 

Сейчас проблема заключается в том, что я получаю эту ошибку:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1944: character maps to <undefined> 
+0

Какая линия указывает на ошибку? –

ответ

0

Откройте файлы в UTF-8, вы также не нужно регулярное выражение, если вы просто хотите заменить табуляции:

import io 

with io.open('sample_test.txt', encoding="utf-8") as f, io.open('sample_test1.txt', 'w', encoding="utf-8") as g: 
    for line in f: 
     g.write(line.replace("\t"," ")) 
+0

Thx, который решает проблему с ошибкой, но для некоторого reasson он не заменяет вкладки пустым пространством. Регулярное выражение также не работает. Любая идея, пока она просто копирует один и тот же контент в g ​​??? – Vedad

+0

У вас есть вкладки, а не просто пробелы? Если вы напечатаете (repr (строка)), что вы видите? –

+0

Теперь он работает, чтобы изменить \ t на \ n. Thx много теперь он полностью работает: D – Vedad