Я пытаюсь использовать Python для создания коллекции таблиц HTML со значениями, выведенными из CSV. Скрипт работает нормально, однако это добавление в нечетных «¬ †» символов, где значение втягивается вPython Вставка нежелательных символов
Это код, который я использовал, чтобы захватить данные CSV:.
import csv
import fileinput
import re
out=open("audiencestats.csv","rU")
data=csv.reader(out)
values =[row for row in data]
metrics = values.pop(0)
out.close()
Это создает функцию сделать HTML таблицы:
def maketable(leftmetric, rightmetric, leftvalue, rightvalue):
template = '''
<table width="99%%" border="1">
<tbody>
<tr>
<td align="center" valign="middle">
<h3>%s</h3>
</td>
<td align="center" valign="middle">
<h3>%s</h3>
</td>
</tr>
<tr>
<td align="center" valign="middle"> %s</td>
<td align="center" valign="middle"> %s</td>
</tr>
</tbody>
</table>
'''
file.write(template % (leftmetric, rightmetric, leftvalue, rightvalue))
Тогда это пишет таблицы в текстовые файлы:
for i in values:
filename = "%s.txt" % i[0]
file = open(filename , 'w')
file.write(header)
maketable(metrics[1],metrics[2],i[1],i[2])
maketable(metrics[3],metrics[4],i[3],i[4])
maketable(metrics[5],metrics[6],i[5],i[6])
maketable(metrics[7],metrics[8],i[7],i[8])
maketable(metrics[9],metrics[10],i[9],i[10])
maketable(metrics[11],metrics[12],i[11],i[12])
file.write(header2)
print makesocial(i[13],i[14],i[15])
file.close()
Я попытался добавить в нижний re.sub цикл for, но кресты остаются.
for line in fileinput.input(inplace=1):
line = re.sub(' ','', line.rstrip())
print(line)
Я что-то не хватает? Мой компьютер стал религиозным?
Пример вывода скопированный ниже, а также:
<h1>Audience</h1>
<table width="99%" border="1">
<tbody>
<tr>
<td align="center" valign="middle">
<h3>UVs (000)</h3>
</td>
<td align="center" valign="middle">
<h3>PVs (000)</h3>
</td>
</tr>
<tr>
<td align="center" valign="middle"> 580.705</td>
<td align="center" valign="middle"> 1003</td>
</tr>
</tbody>
</table>
Является ли это символом валюты Unicode? Что находится в файле CSV? Каковы двоичные значения двух символов? –
Это пахнет проблемой кодирования. Какая кодировка является файлом CSV? Можете ли вы загрузить (небольшую выборку) где-нибудь или просто открыть его как двоичный файл и 'print ('.join (hex (ord (c)) для c в f.readline()))' или подобное? – abarnert
Кроме того, почему вы пытаетесь использовать 're.sub' для замены фиксированной подстроки? Для этого просто используйте 'str.replace'. – abarnert