python-练习:读取csv文件,报错list index out of range

在《Python编程:从入门到实践》的练习中,作者遇到了读取'sitka_weather_07-2014.csv'时出现'list index out of range'的错误。问题出在文件中的空行导致数据解析异常。通过删除CSV文件中的空行,成功解决了这个问题。
摘要由CSDN通过智能技术生成

读取csv文件,提示list index out of range

练习

书籍:《python 编程:从入门到实践》
sitka_weather_07-2014.csv
读取csv文件

sitka_weather_07-2014.csv

AKDT,Max TemperatureF,Mean TemperatureF,Min TemperatureF,Max Dew PointF,MeanDew PointF,Min DewpointF,Max Humidity, Mean Humidity, Min Humidity, Max Sea Level PressureIn, Mean Sea Level PressureIn, Min Sea Level PressureIn, Max VisibilityMiles, Mean VisibilityMiles, Min VisibilityMiles, Max Wind SpeedMPH, Mean Wind SpeedMPH, Max Gust SpeedMPH,PrecipitationIn, CloudCover, Events, WindDirDegrees
2014-7-1,64,56,50,53,51,48,96,83,58,30.19,30.00,29.79,10,10,10,7,4,0.00,7,337
2014-7-2,71,62,55,55,52,46,96,80,51,29.81,29.75,29.66,10,9,2,13,5,0.14,7,Rain,327
2014-7-3,64,58,53,55,53,51,97,85,72,29.88,29.86,29.81,10,10,8,15,4,0.01,6,258
2014-7-4,59,56,52,52,51,50,96,88,75,29.91,29.89,29.87,10,9,2,9,2,0.07,7,Rain,255
2014-7-5,69,59,50,52,50,46,96,72,49,29.8

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,我的代码有误。这里应该使用冒号`:`来分割题目和内容,而不是中文冒号`:`。修改后的代码如下: ```python import re import csv import jieba # 读取文件并筛选出七言诗 with open('poetry.txt', 'r', encoding='utf-8') as f: lines = f.readlines() septenary_poems = [] for line in lines: if re.match('^[\u4e00-\u9fa5]{7}[\,\。\?]', line): septenary_poems.append(line.strip()) # 清洗数据,只保留文字和 ,。? cleaned_poems = [] for poem in septenary_poems: cleaned_poem = re.sub('[^\u4e00-\u9fa5\,\。\?]', '', poem) cleaned_poems.append(cleaned_poem) # 分割题目和内容并保存到csv文件中 titles = [] contents = [] for poem in cleaned_poems: parts = poem.split(':') title = parts[0] content = parts[1] titles.append(title) contents.append(content) with open('poetry.csv', 'w', encoding='gbk', newline='') as f: writer = csv.writer(f) writer.writerows(zip(titles, contents)) # 分词题目并保存到列表中 title_words_list = [] for title in titles: title_words = list(jieba.cut(title)) title_words_list.append(title_words) # 分词内容并在每个字前加特殊标记<STA>,保存到列表中 content_words_list = [] for content in contents: content_words = ['<STA>' + word for word in content] content_words_list.append(content_words) # 将题目和内容分词后的结果保存到csv文件中 with open('poetry_words.csv', 'w', encoding='gbk', newline='') as f: writer = csv.writer(f) writer.writerow(['title_words', 'content_words']) for i in range(len(title_words_list)): writer.writerow([','.join(title_words_list[i]), ','.join(content_words_list[i])]) ``` 感谢您的反馈,希望代码能够正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值