【问题标题】:csv writing last row only in pythoncsv仅在python中写入最后一行
【发布时间】:2021-06-07 22:12:30
【问题描述】:

以下是从 url 解析的控制台输出,仅将最后一行保存到 csv 中

['id=35942&requestId=1615320149894&ln=1000043845']
['id=35943&requestId=1615320149894&ln=1000043833']
['id=35944&requestId=1615320149894&ln=1000043832']
['id=35945&requestId=1615320149894&ln=1000043831']
['id=35946&requestId=1615320149894&ln=1000043845']

重新进口 导入csv

links = driver.find_elements(By.LINK_TEXT, 'Submit') // link attributes
len(links)
for link in links:
    a = link.get_attribute('href')  //getting all the links 
    # print(a)
    parsed = urlparse(a)  //parsing the urls
    path = parsed[-2]  
    pathlist = path.split("/")
   # itm = len(pathlist)
    print(pathlist)
    with open('myfile.csv', 'w') as f:
        writer = csv.writer(f)
        for itm in pathlist:
            writer.writerow(re.findall(r'\d+', str(itm)))

并且 csv 文件只写入最后一行 35946,1615320149894,1000043845

【问题讨论】:

    标签: python-3.x list csv export-to-csv import-csv


    【解决方案1】:

    每次循环开始时,您都会重写文档并删除所有旧输出。只需将 open 移到循环外,如图所示:

    import re
    import csv
    
    links = [
        ['id=35942&requestId=1615320149894&ln=1000043845'],
        ['id=35943&requestId=1615320149894&ln=1000043833'],
        ['id=35944&requestId=1615320149894&ln=1000043832'],
        ['id=35945&requestId=1615320149894&ln=1000043831'],
        ['id=35946&requestId=1615320149894&ln=1000043845']
    ]
    with open('myfile2.csv', 'w') as f:
        for link in links:
            writer = csv.writer(f)
            for itm in link:
                writer.writerow(re.findall(r'\d+', str(itm)))
    

    【讨论】:

    • 不从with open ('myfile.csv') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',')读取它的所有写入csv文件
    • 这正是我在示例中使用的,因为您没有提供任何示例数据,所以我只是编写了一个 csv 来保存多个 URL。我要求澄清您的代码的上半部分。
    • 抱歉刚刚看到您的编辑。这个问题比我想象的要简单得多。
    • 是的,谢谢,b'cally 获取所有链接并将其拆分。然后只有数字打印到控制台需要到 csv。
    • links = [ ['id=35942&requestId=1615320149894&ln=1000043845'], ['id=35943&requestId=1615320149894&ln=1000043833'], ['id=35944&requestId=1615320149894&ln=1000043832'], ['id=35945&requestId=1615320149894&ln=1000043831'], ['id=35946&requestId=1615320149894&ln=1000043845'] ]dont want to copy from console 如何在不将所有输出粘贴到links = [] 的情况下解决问题已经有了这个解决方案itworkshere
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多