如何在Python中把一个文件分割成一个列表

如何在Python中把一个文件分割成一个列表

在这篇文章中,我们将看到如何在Python中把一个文件分割成一个列表.

当我们想让文件的每一行都被列在连续的位置上,每一行都成为文件中的一个元素时,splitlines()或rstrip()方法被用来将一个文件分割成一个列表。让我们看几个例子,看看它是如何完成的.

示例1: 使用 splitlines()

文件是用 open()方法打开的,第一个参数是文件路径,第二个参数是一个字符串(mode),可以是’r’,’w’等,指定数据是要从文件中读取还是写入文件。read()方法从文件中读取数据,这些数据被存储在变量file_data中。打印出列表后,使用close()方法关闭文件.

创建一个名为 “examplefile.txt “的文本文件,如下图所示,该文件被用作输入.

如何在Python中把一个文件分割成一个列表

# opening the file
file_obj = open("examplefile.txt", "r")
  
# reading the data from the file
file_data = file_obj.read()
  
# splitting the file data into lines
lines = file_data.splitlines()
print(lines)
file_obj.close()

输出:

['This is line 1,', 'This is line 2,', 'This is line 3,']

示例2: 使用 rstrip()

在这个例子中,没有使用 splitlines()方法,而是使用了 rstrip()方法。rstrip()方法删除了尾部字符。这个例子中给出的尾部字符是’\n’,是换行。for loop和strip()方法被用来将文件分成一个行的列表。文件在最后被关闭.

# opening the file
file_obj = open("examplefile.txt", "r")
  
# splitting the file data into lines
lines = [[x.rstrip('\n')] for x in file_obj]
print(lines)
file_obj.close()

输出:

[['This is line 1,'], ['This is line 2,'], ['This is line 3,']]

示例3: 使用split()

在用Python的’with’语句打开数据文件后,我们可以使用for循环来迭代数据文件的内容。读取数据后,使用 split() 方法将文本分割成单词。split()方法在默认情况下使用空格来分离文本.

with open("examplefile.txt", 'r') as file_data:
    for line in file_data:
        data = line.split()
        print(data)

输出:

['This', 'is', 'line', '1,']
['This', 'is', 'line', '2,']
['This', 'is', 'line', '3,']

示例4: 用生成器分割一个文本文件

Python 中的生成器是一个特殊的技巧,可以用来生成一个数组。一个生成器,像一个函数一样,每次返回一个数组。生成器使用的是 yield 关键字。当 Python 遇到一个 yield 语句时,它会保存函数的状态,直到以后再次调用生成器。yield 关键字保证了我们的 while 循环的状态在迭代之间被保存。在处理大文件时,这可能很有用

# creating a generator function
def generator_data(name):
    # opening file
    file = open(name, 'r')
    while True:
        line = file.readline()
        if not line:
            # closing file
            file.close()
            break
        # yield line
        yield line
  
  
data = generator_data("examplefile.txt")
for line in data:
    print(line.split())

输出:

['This', 'is', 'line', '1,']
['This', 'is', 'line', '2,']
['This', 'is', 'line', '3,']

示例5: 使用列表理解法

Python 列表理解是一种处理列表的漂亮方式。列表理解很强大,而且它的语法更短。此外,列表理解语句通常更容易阅读。

为了读取前面例子中的文本文件,我们不得不使用 for 循环。使用列表理解,我们可以用一行代码取代我们的for循环。

在通过列表理解获得数据后,split()被用来分离各行,并将其追加到一个新的列表中。让我们看一个例子来理解。

with open("examplefile.txt", 'r') as file:
    data = [line.strip() for line in file]
  
print(data)
# iterating through data
for line in data:
    print(line.split())

Output:

['This is line 1,', 'This is line 2,', 'This is line 3,']
['This', 'is', 'line', '1,']
['This', 'is', 'line', '2,']
['This', 'is', 'line', '3,']

示例6: 将一个文本文件分割成多个文本文件

如果我们有一个大文件,在一个文件中查看所有的数据是很困难的,我们可以把数据分割成多个文件。让我们看一个例子,我们把文件数据分割成两个文件。

Python 列表切分法可以用来分割一个列表。首先,我们用 readlines() 方法读取文件。然后将文件的前半部分/上半部分复制到一个名为 first half.txt 的新文件。在这个for循环中,我们将使用列表切分法将主文件的前半部分写到一个新文件中。

第二个循环用于将另一部分数据写入第二个文件。后半部分的数据包含在second half.txt中。为了进行分片,我们需要使用len()方法来确定主文件中的行数 最后,使用int()方法将除法结果转换为一个整数值

# opening the main file
with open("examplefile.txt", 'r') as file:
    data = file.readlines()
  
# writing half of the data in one file
with open("first_half.txt", 'w') as file1:
    for line in data[:int(len(data)/2)]:
        file1.write(line)
  
# writing another half of the data in one file
with open("second_half.txt", 'w') as file2:
    for line in data[int(len(data)/2):]:
        file2.write(line)

输出:

如何在Python中把一个文件分割成一个列表

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程