如何使用python从CSV文件中删除数据

时间:2019-10-03 16:21:23

标签: python csv

我正在搜寻一个网站,以获取课程编号和课程名称。但是,如果课程编号没有名称,反之亦然,则应从最终输出中跳过数据。我不知道该怎么做。

from bs4 import BeautifulSoup
from urllib import urlopen 
import csv

source = urlopen('https://www.rit.edu/study/computing-security-bs')

csv_file1 = open('scrape.csv', 'w')
csv_writer = csv.writer(csv_file1)
csv_writer.writerow(['Course Number', 'Course Name'])

soup = BeautifulSoup(source, 'lxml')

table = soup.find('div', class_='processed-table')
#print(table)

curriculum = table.find('curriculum')
#print(curriculum.prettify())

next = curriculum.find('table', class_='table-curriculum')
#print(next.prettify())

for course_num in next.find_all('tr', class_='hidden-row rows-1'):
    num = course_num.find_all('td')[0]
    real = num.get_text()
#   print(real)
    realstr = real.encode('utf-8')

    name = course_num.find('div', class_='course-name')
    realname = name.get_text()
#   print(realname)
    realnamestr = realname.encode('utf-8')

    csv_writer.writerow([realstr, realnamestr])

csv_file1.close()

这是我的csv csv 我想摆脱最后4行。

1 个答案:

答案 0 :(得分:0)

正如@zvone所建议的,继续将在此处完成工作。如您提到的那样编写此答案,您并不知道该关键字。

在此之前,csv_writer.writerow([realstr, realnamestr])只需放置一个if来检查realstrcontinue

if realstr.stip() == "":
    continue

我认为您仍然应该使用continuebreakelse关键字,以及它们如何对控制循环起到帮助作用。

另一种方法是仅在csv_writer具有一定值时才将数据放入realstr。所以:

if realstr.strip != "":
    csv_writer.writerow([realstr, realnamestr])