在Python中更新CSV文件
我正在尝试更新csv文件,在Python中更新CSV文件,python,python-3.x,csv,Python,Python 3.x,Csv,我正在尝试更新csv文件,https://www.kaggle.com/carolzhangdc/imdb-5000-movie-dataset 在这个csv文件的末尾,我试图将一个新的url附加到电影的图像中 我的代码在下面 import csv from bs4 import BeautifulSoup import urllib2 with open('movie_metadata.csv') as csv_file: csv_reader = csv.reader(csv_fi
https://www.kaggle.com/carolzhangdc/imdb-5000-movie-dataset
在这个csv文件的末尾,我试图将一个新的url附加到电影的图像中
我的代码在下面
import csv
from bs4 import BeautifulSoup
import urllib2
with open('movie_metadata.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
print('Column names are {}'.format(", ".join(row)))
row[-1] = "movie_links"
line_count += 1
else:
imdb_link = row[17]
soup = BeautifulSoup(urllib2.urlopen(imdb_link).read(), features="html.parser")
link = soup.find_all('div', {'class': 'poster'})
if link:
row[-1] = link[0].find('img')['src']
line_count += 1
print('Processed {} lines.'.format(line_count))
我正在行[-1]
处创建新行,并尝试更新csv文件如果链接:
但它根本没有更新我的csv文件,在我运行代码后它保持不变。您知道您覆盖了数组
行中的最后一个元素吗?您应该append()
而不是更改[-1]
。尝试:
行。追加(“电影链接”)
而不是行[-1]=“电影链接”
及
row.append(链接[0]。查找('img')['src'])
而不是row[-1]=link[0]。查找('img')['src'])
然后,要实际编写CSV文件,请将CSV.writer
与新行一起使用(此处的文档:)
注意,row+[“movie links”]
对于第一个是另一种附加方式。使用[-1]
覆盖最后一个元素,而不是追加!如果您想让我为csv写入部分编码,请告诉我。您是否意识到覆盖了数组行中的最后一个元素?您应该append()
而不是更改[-1]
。尝试:
行。追加(“电影链接”)
而不是行[-1]=“电影链接”
及
row.append(链接[0]。查找('img')['src'])
而不是row[-1]=link[0]。查找('img')['src'])
然后,要实际编写CSV文件,请将CSV.writer
与新行一起使用(此处的文档:)
注意,row+[“movie links”]
对于第一个是另一种附加方式。使用[-1]
覆盖最后一个元素,而不是追加!如果您想让我为您编写csv写入部分的代码,请告诉我。您似乎没有回信?您正在使用csv阅读器。读者不写作。使用csv编写器进行编写。尝试就地修改csv将比您需要的困难得多。您需要读取整个文件,创建新内容,并在1个goSeems中覆盖整个文件,就像您没有回写一样?您正在使用csv阅读器。读者不写作。使用csv编写器进行编写。尝试就地修改csv将比您需要的困难得多。您需要在中读取整个文件,创建新内容,然后一次性覆盖整个文件