首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: readline()-method创建空列表

Python: readline()-method创建空列表
EN

Stack Overflow用户
提问于 2014-03-23 11:58:29
回答 1查看 221关注 0票数 0

我试图解析文本文件中的项目,其中的文本行由分号分隔,如下所示:

代码语言:javascript
复制
4037;HKO_2005;OBJECT-ORIENTED PROGRAMMING               ;18.12.2011;5

4037;HKO_2009;DATABASES I                               ;2.5.2011;5

4037;HKO_2011;ALGORITHMS I                              ;7.5.2011;5

4037;HKO_2038;PROGRAMMING BASICS IN JAVA                ;22.5.2010;5

列表的列表如下:

代码语言:javascript
复制
['4037', 'HKO_2005', 'OBJECT-ORIENTED PROGRAMMING', '18.12.2011', '5'],
['4037', 'HKO_2009', 'DATABASES I', '2.5.2011', '5'],
['4037', 'HKO_2011', 'ALGORITHMS I', '7.5.2011', '5'],
['4037', 'HKO_2038', 'PROGRAMMING BASICS IN JAVA', '22.5.2010', '5']

现在我用于测试的代码如下所示:

代码语言:javascript
复制
class Main:
    def inputFile(self):
        with open('data.txt', 'r') as data:
            self.stuff = data.readlines()
            self.separate = [elem.strip().split(';') for elem in self.stuff]
            print(self.separate)

justdoit = Main()
justdoit.inputFile()

我的问题是,您已经看到了:文本文件看起来没有双换行符,直到我在这里粘贴它。使用我的代码,readline()-method在换行符之间创建空列表,如下所示:

代码语言:javascript
复制
['4037', 'HKO_2005', 'OBJECT-ORIENTED PROGRAMMING          ', '18.12.2011', '5'],
[''],
['4037', 'HKO_2009', 'DATABASES I                          ', '2.5.2011', '5'],
[''],
['4037', 'HKO_2011', 'ALGORITHMS I                         ', '7.5.2011', '5'],
[''],
['4037', 'HKO_2038', 'PROGRAMMING BASICS IN JAVA           ', '22.5.2010', '5']
['']

我相信以后我可以用giving ()从课程名称中去掉空白,但是换行符让我头疼。早些时候,我得到了一个IndexError,因为这一点,我不知道文本文件有双换行符。在创建列表之前,我如何有效地忽略或删除这些额外的换行符?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-23 12:00:23

您可以向列表理解添加一个条件:

代码语言:javascript
复制
self.separate = [elem.strip().split(';') for elem in self.stuff if elem.strip()]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22590583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档