我正在尝试更新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_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))
我正在row[-1]
创建新行,并尝试更新csv文件if link:
但它根本不更新我的csv文件,在我运行代码后它保持不变。你知道吗
你知道你覆盖了数组
row
中的最后一个元素吗?你应该append()
而不是改变[-1]
。尝试:row.append("movie_links")
而不是row[-1] = "movie_links"
以及
row.append(link[0].find('img')['src'])
而不是row[-1] = link[0].find('img')['src']
。你知道吗然后,要实际编写CSV文件,请对新行使用
csv.writer
(这里的文档:https://docs.python.org/3/library/csv.html)。你知道吗注意,
row + ["movie links"]
对于第一个是另一种附加方式。使用[-1]
覆盖最后一个元素而不是追加!让我知道如果你想让我给你编码的csv写作部分。你知道吗相关问题 更多 >
编程相关推荐