您的位置:

Python读取txt文件

一、Python读取txt文件

在Python中,使用`open()`函数可以打开文本文件,读取其中的内容,如下所示:

file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

上述代码使用`open()`函数以只读模式打开一个名为`example.txt`的文件,读取其中的内容并将其存储在变量`content`中,最后输出整个文件的内容。同时,使用`close()`函数关闭文件。

当然,读取整个文件内容可能会导致内存溢出,因此还可以使用`readline()`或`readlines()`函数来一次读取一行或全部行的内容。比如:

file = open('example.txt', 'r')
content = file.readline()
while content:
    print(content.strip())
    content = file.readline()
file.close()

上面的代码打开文本文件`example.txt`,使用`readline()`函数一次读取一行,并用`while`循环依次打印每一行,其中`strip()`函数用于去除行末的空白符。

二、Python读取txt的原理

在Python中,使用`open()`函数打开文件后,会返回一个文件对象。文件对象可用于读取或写入文本文件的内容。当文件对象被创建时,操作系统会为之分配一个文件标识符,其值会不断递增,用于其他操作系统调用该文件时的标识符。

在Python中,文件中的数据在内存中以缓冲区形式存储。在读取文件时,数据从缓冲区中读取并传输到Python解释器中。为了避免内存溢出,Python会在内存中建立一个缓冲区,每次只读取一部分数据,而非一次性读取整个文件内容。

三、Python读取txt关键字的数据

在文本文件中,数据可能被保存在没有特定分隔符的文本中。而我们可能需要从文本中提取特定的、符合我们需求的数据。此时,可以使用Python中字符串的各种方法和正则表达式来实现。

比如,下面的代码可以从文本文件`example.txt`中提取含有关键字`python`的行:

import re

file = open('example.txt', 'r')
for line in file:
    if re.search('python', line, re.IGNORECASE):
        print(line.strip())
file.close()

上述代码使用了正则表达式`python`匹配行中含有关键字`python`的行,并用`strip()`函数去除行末的空白符。其中`re.IGNORECASE`表示不区分大小写匹配。

四、Python读取txt内容

使用`read()`函数可以一次性读取整个文件,但如果文件过大,这种方法不仅会导致内存和处理时间的浪费,还可能使整个程序崩溃。因此,可以使用`read(size)`函数每次读取指定大小的数据。

比如,下面的代码读取文件中的前1000个字符:

file = open('example.txt', 'r')
content = file.read(1000)
print(content)
file.close()

五、Python读取txt数据

文本文件中可能包含各种格式的数据,而我们需要将这些数据解析出来。Python中有许多库和函数可以帮助我们完成这个任务,比如`csv`、`pandas`等库。

比如,下面的代码使用`csv`库读取一个csv文件:

import csv

with open('example.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

六、Python读取txt指定行内容

有时,我们只需要读取一个文本文件中的特定行。此时,可以使用Python中的列表和`readlines()`函数来实现。

比如,下面的代码读取文本文件`example.txt`中的第3行、第5行、第7行和第9行:

file = open('example.txt', 'r')
lines = file.readlines()
index = [2, 4, 6, 8]
for i in index:
    print(lines[i].strip())
file.close()

上述代码读取文件中的全部行,然后使用列表`index`保存想要读取的行的索引,最后按照行的索引打印出相应行的内容。其中,`strip()`函数用于去除行末的空白符。

七、Python读取txt写入excel

有时,我们需要将文本文件中的数据写入到Excel文件中。此时,可以使用Python中的`openpyxl`库。这个库允许我们以编程的方式来创建、读取和修改Excel文件。

比如,下面的代码向Excel文件`example.xlsx`的第一个工作表中写入文本文件`example.txt`的内容:

import openpyxl

wb = openpyxl.Workbook()
ws = wb.active

with open('example.txt', 'r') as file:
    row = 1
    for line in file:
        ws.cell(row=row, column=1).value = line.strip()
        row += 1

wb.save('example.xlsx')

上述代码创建了一个Excel文件并打开了它的第一个工作表。然后,使用`open()`函数打开文本文件并将每一行写入到Excel文件第一列中,最后保存Excel文件。

八、Python读取txt某一行

除了读取指定行的内容,还有一种常见的需求是读取文件的第一行或最后一行。Python中可以使用迭代器来完成这个任务。具体地,使用`next()`函数可以迭代一个迭代器。因此,我们可以使用`iter()`函数将文件对象转换为迭代器,然后使用`next()`函数即可读取一行数据。

比如,下面的代码读取文本文件`example.txt`的第一行和第二行:

file = open('example.txt', 'r')
iterator = iter(file)
print(next(iterator).strip())  # 第一行
print(next(iterator).strip())  # 第二行
file.close()

九、Python读取txt矩阵

在文本文件中,矩阵通常被保存为以空格或制表符为分隔符的数据,且每行数据具有相同的长度。此时,我们可以使用Python中的列表和各种解析技巧来将矩阵读取到内存中。

比如,下面的代码读取文本文件`example.txt`的矩阵:

file = open('example.txt', 'r')
matrix = []
for line in file:
    row = line.strip().split()
    matrix.append(row)
file.close()

for row in matrix:
    print(row)

上述代码读取文件中的全部行,然后使用`split()`函数将每一行切分为一个字符串列表`row`,最后将这个列表放到一个列表`matrix`中。