我正在尝试从文本文件中解析项目,其中的文本行由分号分隔,如下所示:
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
到这样的列表列表:
['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']
现在我用于测试的代码如下所示:
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()
我的问题是您已经看到的:在我将其粘贴到此处之前,该文本文件看起来没有双换行符。使用我的代码 readlines() 方法在换行符之间创建空列表,如下所示:
['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']
['']
我相信我以后可以用 rstrip() 从课程名称中去掉空格,但是换行符让我头疼。早些时候我因为这个而得到一个 IndexError 并且我不知道文本文件有双换行符。在创建列表之前,如何有效地忽略或删除这些额外的换行符?