繁体   English   中英

CSV - 如何逐行读写?

[英]CSV - How to read and write row by row?

我有一个像这样的 CSV 文件:

csv文件截图

在 Python 3 中,我已经从 URL 解析价格数据,如下所示:

source1 = "https://www.amazon.com/product1"
source2 = "https://www.ebay.com/product1"
source3 = "https://www.bestbuy.com/product1"

像这样获取价格数据:

result1 = trim.sub('', mystring1)
result2 = trim.sub('', mystring2)
result3 = trim.sub('', mystring3)

现在我想阅读上面的顶级 CSV 文件,想要将每一行的 URL 输入:

source1 = "read.csv"
source2 = "read.csv"
source3 = "read.csv"

并使用result1result2result3更新价格列,然后转到下一行再次执行相同操作。

谁能帮助我如何读取和写入这样的 CSV 文件?

我能够一一读取 CSV 列表,但是当我尝试写入新文件时,它的写入方式如下图所示

在此处输入图片说明

这是代码。 它正在创建一个新行

import csv


with open('compare_sheet', 'w', newline='') as csv_file:
    fieldnames = ['ProductName', 'Amazon', 'Ebay', 'BestBuy']
    writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
    writer.writeheader()

    product = pr_name.text
    result1 = trim.sub('', mystring1)
    print(result1)
    writer.writerow({'ProductName': product, 'Amazon': result1})

    result2 = trim.sub('', mystring2)
    print(result2)
    writer.writerow({'Ebay': result2})

    result3 = trim.sub('', mystring3)
    print(result3)
    writer.writerow({'BestBuy': result3})

如何在同一行写价格?

顾名思义, writerow写入一个完整的行。 你想把所有的结果组合成一行,像这样;

writer.writerow({'ProductName': product, 'Amazon': result1, 'Ebay': result2, 'BestBuy': result3})

显然,只有在填充了所有三个变量后才能执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM