python操作txt文件 增删查改数据代码
功能需求:
在操作txt文件时,我们通常需要实现以下需求:
1. 添加一行数据到文件末尾。
2. 删除文件中指定的一行数据。
3. 查找文件中包含指定字符串的行。
4. 修改文件中指定的一行数据。
这些需求通常是对txt文件进行增删查改操作的基本需求,可以满足大部分应用场景。在实际应用中,我们还需要考虑文件的大小、并发访问、错误处理等问题,以确保程序的正确性和稳定性。
完整代码:
# 将一行数据添加到文件末尾 def add_line_to_file(filename, line): with open(filename, 'a') as f: f.write(line + '\n') # 删除文件中指定的一行数据 def delete_line_from_file(filename, line_number): # 先读取所有行 with open(filename, 'r') as f: lines = f.readlines() # 再写入除了指定行以外的所有行 with open(filename, 'w') as f: for i, line in enumerate(lines): if i != line_number - 1: f.write(line) # 查找文件中包含指定字符串的行 def find_line_in_file(filename, search_string): with open(filename, 'r') as f: for i, line in enumerate(f): if search_string in line: print(f'Line {i + 1}: {line}', end='') # 修改文件中指定的一行数据 def modify_line_in_file(filename, line_number, new_line): # 先读取所有行 with open(filename, 'r') as f: lines = f.readlines() # 修改指定行的数据 lines[line_number - 1] = new_line + '\n' # 再写入所有行 with open(filename, 'w') as f: f.writelines(lines) if __name__ == '__main__': filename = 'data.txt' add_line_to_file(filename, '小红,18,女') add_line_to_file(filename, '小白,17,男') add_line_to_file(filename, '小于,20,男') print('-------------data.txt数据:-------------') find_line_in_file(filename, '') print('-------------删除第二行后数据:-------------') delete_line_from_file(filename, 2) find_line_in_file(filename, '') print('-------------修改第一行后数据:-------------') modify_line_in_file(filename, 1, '小红红,18,女') find_line_in_file(filename, '') print("-------------搜索数据:-------------") find_line_in_file(filename, '小于')
代码实现分析:
这个例子中,我们使用了Python内置的文件操作函数来操作txt文件。具体来说,我们使用了以下函数:
- `open`:打开文件,返回一个文件对象。
- `readlines`:读取文件中的所有行,返回一个字符串列表。
- `write`:向文件中写入数据。
- `writelines`:向文件中写入多行数据。
- `in`:判断一个字符串是否包含另一个字符串。
在`add_line_to_file`函数中,我们使用了`with`语句打开文件,以追加模式写入一行数据,最后自动关闭文件。
在`delete_line_from_file`函数中,我们首先使用`with`语句打开文件,以只读模式读取所有行。然后,我们使用`with`语句再次打开文件,以写入模式写入除了指定行以外的所有行。最后,我们自动关闭文件。
在`find_line_in_file`函数中,我们使用`with`语句打开文件,以只读模式逐行读取文件中的数据。如果当前行包含指定的字符串,我们就打印出该行数据。
在`modify_line_in_file`函数中,我们首先使用`with`语句打开文件,以只读模式读取所有行。然后,我们修改指定行的数据。最后,我们使用`with`语句再次打开文件,以写入模式写入所有行,完成修改操作。
需要注意的是,在实际应用中,我们需要考虑文件的大小、并发访问、错误处理等问题,以确保程序的正确性和稳定性。