【问题标题】:Loop retrieve data from csv, append to file循环从 csv 检索数据,附加到文件
【发布时间】:2015-08-03 21:00:04
【问题描述】:

我创建了一个 Python 2.7 脚本,它执行以下操作:

  1. 从文件夹中获取文件名列表,并将它们写入 csv 文件,每行一个。

还有

  1. 在网络上的搜索框中输入数据。
  2. 将搜索框的结果写入另一个 csv 文件。

所以我现在想要的是让 (1 ) 中的 csv 数据充当 (2 ) 的输入。

即对于 csv 文件中的每个文件名,它都会搜索该单元格。

此外,我不只是将结果写入 (3) 中的第二个 csv 文件,我想将结果附加到第一个 csv 文件中 - 或者生成一个包含两列的新文件。

我可以提供代码,但由于它已经有 50 行了,我只是尽量保持这个问题的描述性。

更新:建议检索和附加:

with open("file.csv","a+") as f:
    r = csv.reader(f)
    wr = csv.writer(f, delimiter="\n")
    result = []
    for line in r:
        searchbox = driver.find_element_by_name("searchbox")
        searchbox.send_keys(line)

        sleep(8)

        search_reply = driver.find_element_by_class_name("search_reply")

        result = re.findall("((?<=\()[0-9]*)", search_reply.text)
    wr.writerow(result)

【问题讨论】:

  • 您的问题在哪里? 1,2 还是 3?
  • 问题主要出在2。——我不知道如何创建一个从csv文件中读取数据的循环。它应该从 1. 中获取每一行并将其作为对 2. 的请求传递。

标签: python python-2.7 loops csv


【解决方案1】:

打开读取和追加,存储输出然后在最后写入:

import csv
with open("first.csv","a+") as f:
    r = csv.reader(f)
    wr = csv.writer(f,delimiter="\n")
    result = []
    for line in r:
        # process lines/step 2
        # append to result
    wr.writerow(result)

【讨论】:

  • 将重新输出附加到结果列表中,然后在循环外写入。将写入移出循环是必不可少的
  • 谢谢。如何将搜索结果添加到第二列?如果我做 writerow,它将开始一个新行。
  • 为此,您必须写入临时文件,然后使用临时文件内容更新原始文件
猜你喜欢
  • 2019-01-18
  • 2021-04-10
  • 2021-03-16
  • 2021-07-21
  • 2020-06-02
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
相关资源
最近更新 更多