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

  • Post category:Python

要将一个文件分割成一个 Python 列表,可以按照以下步骤进行操作:

  1. 打开文件

使用 Python 中的内置函数 open() 打开文件。我们需要指定文件的路径和打开模式。打开模式可以是只读模式 'r',只写模式 'w',追加模式 'a',或者二进制模式 'b' 等。

with open('file.txt', 'r') as file:
    # 执行操作

在这里我们使用上下文管理器来打开文件。这样即使出现异常也可以自动关闭文件,避免文件句柄泄漏。

  1. 读取文件内容

使用 read() 函数读取文件中的内容,然后将其分割成一个列表。可以根据文件的具体内容决定使用哪种方式分割文件。下面演示使用 splitlines() 函数来将文件按行分割成列表。

with open('file.txt', 'r') as file:
    content = file.read()
    # 将文件按行分割成列表
    lines = content.splitlines()
    print(lines)

输出结果:

['line 1', 'line 2', 'line 3', 'line 4']
  1. 关闭文件

使用 close() 函数关闭文件。

with open('file.txt', 'r') as file:
    content = file.read()
    # 将文件按行分割成列表
    lines = content.splitlines()
    print(lines)

file.close()  # 关闭文件

下面再来看两个具体的例子:

示例1:按逗号分割文件内容

假设文件 data.txt 中的内容如下:

Tom,20,Male
Lucy,18,Female
Jack,25,Male

我们可以按照逗号分割文件内容,并将结果保存到一个列表中:

with open('data.txt', 'r') as file:
    content = file.read()
    # 将文件按逗号分割成列表
    data = [line.split(',') for line in content.splitlines()]
    print(data)

输出结果:

[['Tom', '20', 'Male'], ['Lucy', '18', 'Female'], ['Jack', '25', 'Male']]

示例2:按空格分割文件内容并过滤空字符串

假设文件 words.txt 中的内容如下:

Python is an interpreted, high-level, and general-purpose programming language.
Python is dynamically typed and garbage-collected.

我们可以按照空格分割文件内容,并且使用 filter() 函数过滤掉列表中的空字符串:

with open('words.txt', 'r') as file:
    content = file.read()
    # 将文件按空格分割成列表
    words = [word for line in content.splitlines() for word in line.split(' ')]
    # 过滤掉空字符串
    words = list(filter(lambda x: x != '', words))
    print(words)

输出结果:

['Python', 'is', 'an', 'interpreted,', 'high-level,', 'and', 'general-purpose', 'programming', 'language.', 'Python', 'is', 'dynamically', 'typed', 'and', 'garbage-collected.']

这样,我们就可以将一个文件分割成一个列表了。