返回

文本文件不同行读写详解:Python代码实现

python

如何有效地写入和读取文本文件中的不同行

文本文件广泛用于存储和管理各种数据。在某些情况下,需要能够在文本文件中的不同行中写入和读取特定信息。本文将详细介绍如何实现这一操作,并提供一个使用Python代码的示例。

创建和写入文本文件

为了在文本文件中写入不同行,可以使用Python中的open()函数。该函数接收两个参数:要创建或打开的文件的名称和打开模式。对于写入,模式应为'w'。

file = open('acc_data.txt', 'w')

在打开文件后,可以使用write()方法在不同的行中写入数据。write()方法接收一个字符串作为参数,该字符串将被写入文件。可以通过在字符串末尾添加换行符'\n'来创建新行。

从文本文件中读取不同行

要从文本文件中读取不同行,可以使用readline()方法。该方法将从文件当前位置读取一行并返回一个字符串。为了读取特定行,可以使用一个循环并指定要读取的行号。

file = open('acc_data.txt', 'r')

username = file.readline()[:-1]  # 去除换行符
password = file.readline()[:-1]  # 去除换行符

请注意,当使用readline()方法时,读取指针会自动移动到下一行。这意味着在循环中读取多行时,应小心读取指针的位置。

代码示例

以下是一个使用Python代码的示例,展示了如何在文本文件中写入和读取不同行的操作:

# 创建一个用于存储账户数据的文本文件
file = open('acc_data.txt', 'w')

# 1. 创建账户
def make_acc():
    username = input('请输入用户名:')
    password = input('请输入密码:')
    
    # 将用户名写入文本文件的第一行
    file.write(username + '\n')
    
    # 将密码写入文本文件的第一行
    file.write(password + '\n')

# 2. 登录账户
def login():
    input_user = input('请输入用户名:')
    input_pass = input('请输入密码:')
    
    # 重新打开文本文件,用于读取
    file = open('acc_data.txt', 'r')
    
    # 读取文本文件的第一行,即用户名
    username = file.readline()[:-1]  # 去除换行符
    
    # 读取文本文件的第二行,即密码
    password = file.readline()[:-1]  # 去除换行符
    
    # 验证输入的用户名和密码
    if input_user == username and input_pass == password:
        print('登录成功!')
    else:
        print('登录失败,用户名或密码错误!')

# 根据用户的选择执行相应操作
acc_bool = input('是否已有账户?(y/n):')
if acc_bool == 'y':
    login()
elif acc_bool == 'n':
    make_acc()
    login()
else:
    print('输入错误,请重新输入!')

总结

通过使用open()和readline()方法,可以轻松地在文本文件的不同行中写入和读取数据。这对于存储和管理各种类型的信息非常有用,例如用户信息、设置和其他数据。在编写文件时,应考虑使用适当的模式,并在读取文件时注意读取指针的位置。