关于Python中读取写入文件并进行文件与用户交互的操作
一、提前知识点
在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种:
f = open('username.txt')
first_line = f.readline()
print('first line:',first_line )
f.close()
try:
f = open('username.txt')
print(f.read() )
finally:
if f:
f.close()
上面两种各有区别,第一种在打开文件进行读取之后,需要针对文件进行关闭,这是值得注意的一点,如果没有进行关闭,可能在下次进行写入过程或者出现其他莫名的错误,后者则是使用了try指令,这个可以自动在结束后进行文件关闭,但相对的来说比较繁琐,那么就有第三种比较简便的方式,with指令。
with open('username.txt') as f:
print(f.read())
二、如何进行用户交互和读取写入文件直接进行操作
这边需要用到的是我之前在Python自学之路中用到的用户交互的用法,这边针对输入对文件的内容进行比较,这边就用到了读取文件的指令。按照之前把文件的内容取出来放入变量中,这边值得注意的是我们需要强制的进行数据类型的转换(不转换不会出错,但会使得我们比较的时候结果不是我们需要的结果,就是因为实际看到的数字或者字符类型和我们需要的类型不一致导致。)
用代码来说的话就这样
username = str(input("username:"))
password = str(input("password:"))
with open('locked.txt') as f3:
account_locked = f3.readlines()
if username in account_locked :
print("your account are locked ")
readlines是读取该文件的内容,和readline是有区别的,一个简单方法就是把内容打印出来看就很清楚发现一个是读取全部,另一个是读取首行。这边也应用了if语句进行判断。
补充之前Python自学之路中,第一个习题的个人理解:
# Author: JC #打开文件
'''f = open('username.txt')
first_line = f.readline()
print('first line:',first_line )
f.close()'''
'''try:
f = open('username.txt')
print(f.read() )
finally:
if f:
f.close()
with open('username.txt') as f:
print(f.read())
'''
login_flag = 0
print("Do you want to do ?(login/apple)")
if input() == 'login'and login_flag == 0:
login_flag = 1 if login_flag == 1:
count = 1
while count < 4:
print("please enter your username and password.")
username = str(input("username:"))
password = str(input("password:"))
with open('locked.txt') as f3:
account_locked = f3.readlines()
if username in account_locked :
print("your account are locked ")
break
with open ('username.txt') as f1,open ('password.txt') as f2:
_username =f1.readlines()
_password = f2.readlines()
if username not in _username or password not in _password:
print("eorr username or password!\n you have {count} times.".format(count= 3-count))
count += 1
if count ==4:
with open('locked.txt', 'a+') as f3:
f3.write(username)
f3.write('\n')
print("your account are locked ")
else:
print("Welcome {name} to login....".format(name=username) )
break
else:
print("please enter your new account and password.")
username = input("username:")
password = input("password:")
with open('username.txt','a+') as f1:
f1.write(username) #把变量写入文件
f1.write('\n') #添加换行符
with open('password.txt','a+') as f2:
f2.write(password)
f2.write('\n')
#flag = 1
关于Python中读取写入文件并进行文件与用户交互的操作的更多相关文章
- python中读取\写入CSV中数据的方法
- C#项目实例中读取并修改App.config文件
C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...
- python中读取文件数据时要注意文件路径
我们在用python进行数据处理时往往需要将文件中的数据取出来做一些处理,这时我们应该注意数据文件的路径.文件路径不对,回报如下错误: FileNotFoundError: File b'..Adve ...
- Python中读取文件输出时在头部输出\ufeff
问题出现: 在我测试python中的文本文件的读取与写入时,用到了字典对象来存储读出的数据. std_data = dict() with open(sys.argv[1], encoding='UT ...
- python中读取json文件报错,TypeError:the Json object must be str, bytes or bytearray,not ‘TextIOWrapper’
利用python中的json读取json文件时,因为错误使用了相应的方法导致报错:TypeError:the Json object must be str, bytes or bytearray,n ...
- python中读取mat文件
mat数据格式是Matlab的数据存储的标准格式 在python中可以使用scipy.io中的函数loadmat()读取mat文件. import scipy.io as scio path = 'e ...
- python 中读取yaml
YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. YAML在python语言中有PyYAML安装包. YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类 ...
- C# 操作地址 从内存中读取写入数据(初级)
本示例以植物大战僵尸为例, 实现功能为 每1秒让阳光刷新为 9999.本示例使用的游戏版本为 [植物大战僵尸2010年度版], 使用的辅助查看内存地址的工具是 CE. 由于每次启动游戏, 游戏中阳光 ...
- Python中使用dom模块生成XML文件示例
在Python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文件,下一篇文章再继续介绍Dom解析XML文件. 在生成XML文件中,我们主 ...
随机推荐
- LR测试
LoadRunner种预测系统行性能负载测试工具通模拟千万用户实施并发负载及实性能监测式确认查找问题LoadRunner能够整企业架构进行测试通使用 LoadRunner企业能限度缩短测试间优化性能加 ...
- PowerDesigner如何将设计的表更新到数据库中
前言: 软件开发的过程中,将设计的表更新到数据库中是一件繁琐的事情,使用好工具,能够事半功倍. 环境介绍:Oracle 11g x64 前期准备: 1.PowerDesigner工具(本人是32位的) ...
- Linux时间子系统之二:表示时间的单位和结构
人们习惯用于表示时间的方法是:年.月.日.时.分.秒.毫秒.星期等等,但是在内核中,为了软件逻辑和代码的方便性,它使用了一些不同的时间表示方法,并为这些表示方法定义了相应的变量和数据结构,本节的内容就 ...
- Libevent教程001: 简介与配置
本文内容大致翻译自 libevent-book, 但不是照本翻译. 成文时, libevent最新的稳定版为 2.1.8 stable. 即本文如无特殊说明, 所有描述均以 2.1.8 stable ...
- CS224n笔记0
我准备跟随码农场hankcs大神的脚步,学习一下斯坦福的CS224n课程. 关于该课程的简介,hankcs大神已经写得很清楚了.
- handler.go
{ w.WriteHeader(http.StatusAccepted) } else { errStr := "" for ...
- golang 1.8 优雅关闭
// main.go package main import ( "fmt" "log" "net/http" "os" ...
- 面试阿里前端P6血和泪换来的收获
我的一个朋友在前端耕耘一段时间,也在网上进行了高度培训学习,最近一段时间他打算跳槽去阿里面试前端P6开发岗位,结果被痛虐了一回,估计从此以后会给他留下不可磨灭的阴影啊 真是十年生死两茫茫,一鲁代码 ...
- 关于react组件之间的通信
才开始学react刚好到组件通信这一块,就简单的记录下组件间的通信方式:父到子:props.context,子到父:自定义事件.回调,兄弟组件:共父props传递.自定义事件import React, ...
- ruby整理
参考博客:https://www.cnblogs.com/felixzh/p/8081622.html 官网地址 https://rvm.io/rvm/install 一.前提 centos6.8下 ...