一、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`中。