在写入CSV文件时使用Python3-.replace()字符串

在写入CSV文件时使用Python3-.replace()字符串,python,csv,replace,beautifulsoup,export-to-csv,Python,Csv,Replace,Beautifulsoup,Export To Csv,我试图循环浏览从网站表中获取的每行数据的每一列,以查找和删除特定的子字符串。检查并替换行中的每一列(如果需要)后,应将该行追加到CSV文件中 我试过几种不同的方法,但都不管用。 这是我目前的代码 with open('Transactions.csv', 'w', newline='') as outfile: writer = csv.writer(outfile) writer.writerow([account_name, account_number]) writ

我试图循环浏览从网站表中获取的每行数据的每一列,以查找和删除特定的子字符串。检查并替换行中的每一列(如果需要)后,应将该行追加到CSV文件中

我试过几种不同的方法,但都不管用。 这是我目前的代码

with open('Transactions.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile)
    writer.writerow([account_name, account_number])
    writer.writerow(["Date", "Details", "Debit", "Credit", "Balance"])
    for row in soup.select('tr'):
        text_columns = [td.a.get_text(strip=True) if td.a else td.get_text(strip=True) for td in row.select('td')]
        column_array = []
        for col in text_columns:
          if (col.find("+$") != -1):
            col.replace("+$", "")
            column_array.append(col)
          elif (col.find("minus$") != -1):
            col.replace("minus$", "")
            column_array.append(col)
          else:
            column_array.append(col)
        writer.writerow(column_array)
文件仍在生成中,没有删除任何子字符串。
请帮助。

感谢Barmar在原始问题的评论中对其进行了排序

这是我目前的工作和简化代码

# Writing website data to a CSV file
with open('Transactions.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile)
    writer.writerow([account_name, account_number])
    writer.writerow(["Date", "Details", "Debit", "Credit", "Balance"])
    for row in soup.select('tr'):
        text_columns = [td.a.get_text(strip=True) if td.a else td.get_text(strip=True) for td in row.select('td')]
        column_array = []
        for col in text_columns:
          str = col.replace("+$", "").replace("minus$", "")
          column_array.append(str)
        writer.writerow(column_array)

感谢Barmar在原始问题的评论中对其进行了整理

这是我目前的工作和简化代码

# Writing website data to a CSV file
with open('Transactions.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile)
    writer.writerow([account_name, account_number])
    writer.writerow(["Date", "Details", "Debit", "Credit", "Balance"])
    for row in soup.select('tr'):
        text_columns = [td.a.get_text(strip=True) if td.a else td.get_text(strip=True) for td in row.select('td')]
        column_array = []
        for col in text_columns:
          str = col.replace("+$", "").replace("minus$", "")
          column_array.append(str)
        writer.writerow(column_array)

字符串是不可变的,
col.replace()
不会修改字符串。您需要将结果分配回
col
col=col.replace(…)
不需要
if()
语句。如果找不到字符串,
replace()
将返回未修改的字符串。谢谢!正如您在第一条评论中所说,我通过将替换项分配给一个新字符串来实现它。但是,当我查找多个字符串时,不确定如何删除if()语句。哦,您使用的是
elif
,因此您只想替换其中一个,而不是全部?现在全部排序,谢谢!刚刚发布了工作代码作为答案。字符串是不可变的,
col.replace()
不会修改字符串。您需要将结果分配回
col
col=col.replace(…)
不需要
if()
语句。如果找不到字符串,
replace()
将返回未修改的字符串。谢谢!正如您在第一条评论中所说,我通过将替换项分配给一个新字符串来实现它。但是,当我查找多个字符串时,不确定如何删除if()语句。哦,您使用的是
elif
,因此您只想替换其中一个,而不是全部?现在全部排序,谢谢!刚刚发布了工作代码作为答案。