一、提前知识点

在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. cmd连接Oracle数据库成功后输入sql语句返回 2

    解决办法 : sql语句后一定要跟分号  .

  2. Redis配置文件中关于bind参数

    在配置文件redis.conf中,默认的bind 接口是127.0.0.1,也就是本地回环地址.这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接,这样可以避免将redis服务暴 ...

  3. MyBatis缓存详解

    MyBatis缓存分为一级缓存和二级缓存 http://www.cnblogs.com/zemliu/archive/2013/08/05/3239014.html mybatis 二级cache h ...

  4. REST风格框架实战:从MVC到前后端分离(附完整Demo)

    既然MVC模式这么好,难道它就没有不足的地方吗?我认为MVC至少有以下三点不足:(1)每次请求必须经过“控制器->模型->视图”这个流程,用户才能看到最终的展现的界面,这个过程似乎有些复杂 ...

  5. 基于Jmeter+maven+Jenkins构建性能自动化测试平台

      一.目的: 为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台 ...

  6. tkinter调取签名网而设计签名页面

    # --*-- coding:utf-8 --*-- import tkinter as tk import re import requests from tkinter import messag ...

  7. Python软件目录结构规范

    设计项目目录结构和'代码编码风格'一样, 是为了达到以下两点: 可读性高 可维护性高 目录组织方式 Stackoverflow上有一些比较好的范式.

  8. Spring Boot中使用MyBatis注解配置详解(1)

    之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见 ...

  9. MySQL语句整理(一)

    --01 mysql 数据库的操作       -- 链接数据库     mysql -uroot -pmysql          -- 不显示密码  *****     mysql -uroot ...

  10. Link-Cut Tree指针模板

    模板: 以下为弹飞绵羊代码: #define Troy #include "bits/stdc++.h" using namespace std; ; inline int rea ...