0

Python を使用して、CSV から値を取得した HTML テーブルのコレクションを生成しようとしています。スクリプトは正常に動作していますが、値が取り込まれる場所に奇数の「¬†」文字が追加されています。

これは、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>
4

3 に答える 3

0
于 2013-06-25T21:21:37.297 に答える
-1

これを試して:

line = re.sub(r'(?u) ','', line.rstrip())

次に、正規表現は文字列をユニコードとして扱います。

于 2013-06-24T21:32:27.943 に答える