【问题标题】:Converting set to .csv using for loop使用 for 循环将设置转换为 .csv
【发布时间】:2019-10-22 00:17:56
【问题描述】:

我正在尝试使用 for 循环将一组 Python URL 转换为 .csv 文件。我正在使用 Python 3.8。该集合包含 116 个唯一 URL。但是,我的输出 .csv 文件中有超过 6000 个逗号分隔值。

c = open('task_links.csv', 'w')
cw = csv.writer(c, lineterminator='')
mylist = []
for x in myset:
    mylist.append(x)
    if not mylist:
        continue
    else:
        cw.writerow(mylist)
c.close()

【问题讨论】:

  • 你想要每行一个 URL 吗?因为您的列表在 for 循环的每次迭代中都在增长
  • 是的,我想要每行 1 个 url。我也可以每列 1 个 url。这是一项学校作业,所以只要我在 .csv 文件中的每个单元格中获得 1 个 url 即可。

标签: python csv python-3.8


【解决方案1】:

如果你想要一行多列:

with open('task_links.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(list(myset))

如果你想要一列多行

with open('task_links.csv', 'w') as f:
    writer = csv.writer(f)
    for url in myset:
        writer.writerow([url])

【讨论】:

  • 我收到了这两个错误消息,但是当我首先将集合转换为列表时它起作用了。
【解决方案2】:

您将集合中的每个 URL 附加到 mylist,然后将整个列表写入 CSV 文件。这应该有效:

c = open('task_links.csv', 'w')
cw = csv.writer(c, lineterminator='')
mylist = []
for x in myset:
    mylist.append(x)
    cw.writerow(x)
c.close()

【讨论】:

    【解决方案3】:

    如果你不反对 pandas 包

    import pandas as pd
    
    set_of_links = set(["https://www.link{}.com".format(i) for i in range(116)])
    df = pd.DataFrame(set_of_links, columns=['links'])
    df.to_csv('task_links.csv', index=False)
    

    【讨论】:

    • 我是 python 新手。还没用过熊猫。
    猜你喜欢
    • 2012-10-13
    • 2015-12-03
    • 2021-03-12
    • 2018-02-22
    • 2017-04-26
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多