Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么创建的csv文件会复制行,如何将列表创建为列?_Python_Csv - Fatal编程技术网

Python 为什么创建的csv文件会复制行,如何将列表创建为列?

Python 为什么创建的csv文件会复制行,如何将列表创建为列?,python,csv,Python,Csv,我是python新手,在尝试学习一些基础知识的过程中,我有一个基本的webscraper来获取URL链接,然后我想将这些链接作为单个列中的列表写入csv。但是,在下面的代码中,链接被写入一行(254个项目),但随后整行被重复相同的次数(254个相同的行)。我已经搜索过了,但找不到相同的问题。谢谢你的帮助/理解 import requests from bs4 import BeautifulSoup import csv r = requests.get('url') print(r.stat

我是python新手,在尝试学习一些基础知识的过程中,我有一个基本的webscraper来获取URL链接,然后我想将这些链接作为单个列中的列表写入csv。但是,在下面的代码中,链接被写入一行(254个项目),但随后整行被重复相同的次数(254个相同的行)。我已经搜索过了,但找不到相同的问题。谢谢你的帮助/理解

import requests
from bs4 import BeautifulSoup
import csv

r = requests.get('url')
print(r.status_code)
r.text

soup = BeautifulSoup(r.text, 'html.parser')
print(soup.prettify())

data=[]
for link in soup.find_all('a', href=True):
    print(link['href'])
    data.append(link['href'])

with open('test1.csv', 'w', newline='') as f:
    write = csv.writer(f)
    for row in data:
        write.writerow(data)

此处,
write
作为writer对象,您可能需要尝试:

with open('test1.csv', 'w', newline='') as f:
    write = csv.writer(f)
    for row in data:
        write.writerow([row])  # [row] to write row as an unique column

此处,
write
作为writer对象,您可能需要尝试:

with open('test1.csv', 'w', newline='') as f:
    write = csv.writer(f)
    for row in data:
        write.writerow([row])  # [row] to write row as an unique column

不使用
csv
的替代方案。在这种简单的情况下,并不真正需要或有用

with open("test1.txt", "w") as ff:
    for row in data:
        ff.write(row + '\n')

不使用
csv
的替代方案。在这种简单的情况下,并不真正需要或有用

with open("test1.txt", "w") as ff:
    for row in data:
        ff.write(row + '\n')

我键入了错误的with open语句,我已将其更新为我在本期中使用的版本。我键入了错误的with open语句,我已将其更新为我在本期中使用的版本。