文本读取与修改某一行

需求:

由于没有学习到Python的数据库,所以我用文本文件来读取数据

代码:

# -*- coding:utf-8 -*-# author:ke_Timport os,sysu_i_name = input("请输入你的用户名")u_i_password = input("请输入你的密码")black_name = open("E:\\大三\\上学期\\数据语言\\pythonProject\\day1\\test1.txt", "r")line = black_name.readline()name1 = u_i_namewhile line:    if(line.strip() == u_i_name):        print("该用户已经进入黑名单")        exit()    line = black_name.readline()

try:    bl = True    count = 0    while bl:        fock = open("E:\\大三\\上学期\\数据语言\\pythonProject\\day1\\test.txt", "r")        while True:            line = fock.readline()            user = line.split(":")            name = user[0]            password = user[1]            if(u_i_name == name.strip()):                if(u_i_password == password.strip()):                    print("恭喜你登录成功")                    bl = False                    break                else:                    count += 1                    print("登录失败,账户名或者密码错误,请重新输入,用户{0}还有{1}次机会".format(u_i_name,3-count))

if count==3:                        black_name = open("E:\\大三\\上学期\\数据语言\\pythonProject\\day1\\test1.txt", "a")                        black_name.writelines("\n{0}".format(name))                        print("你已经进入黑名单")                        exit()                    u_i_name = input("请输入你的用户名")                    u_i_password = input("请输入你的密码")                    break            elif line == "":                print("找不到该用户,请检查你的用户名")                u_i_name = input("请输入你的用户名")                u_i_password = input("请输入你的密码")                break

finally:    fock.close()    black_name.close()
完成这道题,我遇到什么问题呢?首先是文本文件读取方式,这个没学过python的,因此哦我上网查了查。它用的是open()函数,这个open函数,第一个参数写的是文件读取的地址,第二个参数的读取该文件的方式,像我的代码中的r+的读取方式,就是代表着不仅读,下面百度的open函数的读取文件的方式:rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)w     以写方式打开,a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)r+     以读写模式打开w+     以读写模式打开 (参见 w )a+     以读写模式打开 (参见 a )rb     以二进制读模式打开wb     以二进制写模式打开 (参见 w )ab     以二进制追加模式打开 (参见 a )rb+    以二进制读写模式打开 (参见 r+ )wb+    以二进制读写模式打开 (参见 w+ )ab+    以二进制读写模式打开 (参见 a+ )open函数的使用需要导入os,所以不能忘记import os。最让我惊讶的是,在字符的比价卡了好一会,因为用的方法错了,用了.__str__()来忽略空格和换行符,发现不对,头疼啊。后来才发现不是这个,而是strip(),心酸。在这里浪费了许多的瞬间,很难受,期间自己给字符加换行符再比较,最终还是原有的函数好用。
下面是我思路的流程图:

我一开始的思路是想着把用户名,密码,还有次数都存在一个文件里面的,但是在修改的时候,出现了问题,就是找不到方法直接修改文本的那一行。上网找了,发现大多数的解决方法就是重写,感觉效率太低了这样子。因为我觉得之后如果学习了数据库,这个问题不大。

 
 
时间: 2024-08-04 03:22:43

文本读取与修改某一行的相关文章

sqlserver 锁定一行数据,禁止读取,修改和删除

sql 事务中 有时候需要锁定某行,等事物完成后 释放此行. 使用 with(ROWLOCK,UpdLock)   锁定当前行.禁止读取,修改和删除 a 事务 ALTER PROCEDURE [dbo].[asuo] AS BEGIN begin tran SELECT TOP 1 * FROM dbo.JYQ_HLT_Order with(ROWLOCK,UpdLock)  WHERE orderID=321878 UPDATE dbo.JYQ_HLT_Order SET orderBilli

DOM读取和修改节点对象属性

一.获取和修改元素间的内容(3种) 1.innerHTML 获得/设置元素开始标签和结束标签之间的html原文 固定套路:1.删除父元素下所有子元素:parent.innerHTML=""; 2.批量替换父元素下所有子元素:parent.innerHTML="所有子元素标签组成的html" 2.textContent/innerText: 获得开始标签和结束标签之间的文本(去除标签) textContent 是DOM标准:innerText 是IE8: 3.文本节点

JavaScript之DOM-2 读取和修改节点信息(节点信息、元素的内容、属性)

一.节点信息 节点名称 nodeName - nodeName: 节点的名称,String 类型属性 - nodeName 是只读的 节点类型 nodeType - nodeType:节点类型,Number 类型属性 节点值 nodeValue - nodeValue:节点的值,String类型属性 二.元素的内容 HTML 内容 - 元素节点对象的innerHTML属性读取或设置元素节点中的HTML内容 文本内容 - 元素节点对象的textContent属性用于读取或设置元素节点中的文本内容-

vc中json文件的读取、修改和添加字段的方法

前言: 本代码涉及到对json文件的读取.修改和添加方法 WTL中radir button的状态判断和设置可选以及取消可选 示例: 所需头文件: #include <json.h> #include <file_io.h> 代码部分: //读取下载线路在界面上的radir button中显示 void CMainDlg::read_download_line_from_cfg() { std_string strDownloadLine; file_io<> json_

CRUD操作 create创建 read读取 update修改 delete删除

1.注释语法:--,#2.后缀是.sql的文件是数据库查询文件3.保存查询4.在数据库里面 列有个名字叫字段 行有个名字叫记录 CRUD操作:create 创建(添加)read 读取update 修改delete 删除 1.添加数据insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ; 给特定的列添加数据insert into Info (code,name) values('p010','李四');自增长列的处理in

shell读取文件的每一行

写法一: ---------------------------------------------------------------------------- #!/bin/bash while read line do echo $line done < filename(待读取的文件) ---------------------------------------------------------------------------- 写法二: --------------------

数据元素文本增强(修改标准数据元素描述)

事务代码:CMOD 1. . 2. 3. 4. 5. 数据元素文本增强(修改标准数据元素描述),布布扣,bubuko.com

shell读取文件的每一行内容并输出【转】

写法一: #!/bin/bash while read line do echo $line done < file(待读取的文件) 写法二: #!/bin/bash cat file(待读取的文件) | while read line do echo $line done 写法三: for line in `cat file(待读取的文件)` do echo $line done 说明:for逐行读和while逐行读是有区别的,如: $ cat file aaaa bbbb cccc dddd

FileSystemObject组件新建读取添加修改删除功能实例

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>FileSystemObject组件应该实例</title> </head> <