一、提前知识点

在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中读取写入文件并进行文件与用户交互的操作的更多相关文章

  1. python中读取\写入CSV中数据的方法

  2. C#项目实例中读取并修改App.config文件

    C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...

  3. python中读取文件数据时要注意文件路径

    我们在用python进行数据处理时往往需要将文件中的数据取出来做一些处理,这时我们应该注意数据文件的路径.文件路径不对,回报如下错误: FileNotFoundError: File b'..Adve ...

  4. Python中读取文件输出时在头部输出\ufeff

    问题出现: 在我测试python中的文本文件的读取与写入时,用到了字典对象来存储读出的数据. std_data = dict() with open(sys.argv[1], encoding='UT ...

  5. 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 ...

  6. python中读取mat文件

    mat数据格式是Matlab的数据存储的标准格式 在python中可以使用scipy.io中的函数loadmat()读取mat文件. import scipy.io as scio path = 'e ...

  7. python 中读取yaml

    YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. YAML在python语言中有PyYAML安装包. YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类 ...

  8. C# 操作地址 从内存中读取写入数据(初级)

    本示例以植物大战僵尸为例, 实现功能为 每1秒让阳光刷新为 9999.本示例使用的游戏版本为 [植物大战僵尸2010年度版], 使用的辅助查看内存地址的工具是  CE. 由于每次启动游戏, 游戏中阳光 ...

  9. Python中使用dom模块生成XML文件示例

    在Python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文件,下一篇文章再继续介绍Dom解析XML文件. 在生成XML文件中,我们主 ...

随机推荐

  1. selenium webdriver (python)的基本用法一

    阅在线 AIP 文档:http://selenium.googlecode.com/git/docs/api/py/index.html目录一.selenium+python 环境搭建........ ...

  2. Linux下MySQL的数据文件存放位置

    http://bbs.csdn.net/topics/390620630mysql> show variables like '%dir%';+------------------------- ...

  3. Linux获取网络接口信息

    linux获取网络接口信息需要用到的函数为ioctl(),结构体struct ifreq,struct ifconf 1.ioctl()函数原型及作用 #include <sys/ioctl.h ...

  4. How to set spring boot active profiles with maven profiles

    In the previous post you could read about separate Spring Boot builds for a local development machin ...

  5. Oracle .NET Core Beta驱动已出,自己动手写EF Core Oracle

    使用.net core也有一段时间了,一直都没有Oracle官方的正式版驱动程序,更别说EF版本了.之前基于Oracle官方的.net core预览版本写了个Dapper的数据库操作实现,但是总感觉不 ...

  6. 一个靠谱的phpredisadmin文件

    http://download.csdn.net/detail/newjueqi/7227487

  7. sublime text3汉化

    注意在安装 sublime text3 时勾选Add to explorer context menu,这样在右键单击文件时就可以直接使用Sublime Text打开. 下载Package Contr ...

  8. 利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)

    对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...

  9. Go 1.9 sync.Map揭秘

    Go 1.9 sync.Map揭秘 目录 [−] 有并发问题的map Go 1.9之前的解决方案 sync.Map Load Store Delete Range sync.Map的性能 其它 在Go ...

  10. 获取具有指定扩展数据的所有实体的Id,并存入Id数组中

    AcDbObjectIdArray ObtainEntId(){ //获取块表 AcDbBlockTable *pBlkTbl; acdbHostApplicationServices()->w ...