如何使用循环替换python中的字符?

2024-03-28 09:25:37 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我必须将所有的'/'字符改为-->gt;'x/x',但是什么都没有发生。之后,当循环找到“modul”时,我必须停止,这部分工作。 我的代码有什么问题,我如何修复它来更改这些字符? Python 2.7.13

import urllib2 import unicodecsv as csv import os import sys import io import time import datetime import pandas as pd from bs4 import BeautifulSoup import MySQLdb import re filename=r'output.csv' resultcsv=open(filename,"wb") output=csv.writer(resultcsv, delimiter=';',quotechar = '"', quoting=csv.QUOTE_NONNUMERIC, encoding='latin-1') f = open('0910000511.txt', 'r') x = f.read() soup = BeautifulSoup(x, 'lxml') datatable=[] stop = 0 for ctable in soup.find_all('table', "ctable" ): for record in ctable.find_all('tr'): temp_data = [] for data in record.find_all('td'): temp_data.append(data.text.encode('latin-1')) if '/' in data.text: record2 = str(record).replace('/', ' / ') final_format = ' {} '.format(record2) if 'modul' in data.text: stop = 1 break datatable.append(temp_data) if stop == 1: break if stop == 1: break output.writerows(datatable) print record2 tab6col = soup.find('table', { "class" : "tab6col" }) datatable2=[] for record in tab6col.find_all('tr'): temp_data2 = [] for data in record.find_all('td'): temp_data2.append(data.text.encode('latin-1')) datatable.append(temp_data2) output.writerows(datatable) resultcsv.close()

我的html代码的一部分:

因此,我想将all/标记更改为-->;'3/1'


Tags: csvtextinimportforoutputdataif
2条回答

我看到你的代码发现了一个问题。您试图在脚本中找到tdtr标记,而TR和{}标记则存在于html中。下面是我尝试过的代码。在

a = """<tr><td>&nbsp;</td><TD class="contentsub" WIDTH="80">3/1</tr><td class="contentword_valid">NAME<BR>
Változás időpontja: 2013.12.30.<BR>
Bejegyzés kelte: 2013.12.19."""
from bs4 import BeautifulSoup
datatable=[]
stop = 0
soup = BeautifulSoup(a, 'html.parser')
for record in soup.find_all('tr'):
    temp_data = []
    for data in record.find_all('td'):
        temp_data.append(data.text.encode('latin-1'))
        record2 = str(record).replace('/', ' / ')
        print(record2)
        final_format = ' {} '.format(record2)
        if 'modul' in data.text:
            stop = 1
            break
    datatable.append(temp_data)
    print(datatable)
    if stop == 1:
        break

输出:

^{pr2}$

试试这个

record2 = str(record).replace('/', ' / ')替换为record2 = str(record).replace('/', 'x/x')

相关问题 更多 >