python内置函数中的 IO文件系列 open和os

简介:

 本篇介绍 IO 文件中的 open 和 os基础用法。

本次用一个游戏登陆 基础界面做引子,来介绍。

实现存储的话,方式是很多的。 比如 存到字典 和列表了,可是字典、列表是临时的,玩网页游戏一次还是可以,如果要是一个反复要用到的一个软件的话,显然就不合适了,比较熟悉的介质有《文件》,对正在的程序来讲,用文件数存储据存到文件当中不是很好的选择。这里有数据库的概念。

本次用文件来存储

本次内容实现 登陆 验证

登陆验证 形式,必须输入正确的用户名和密码,才可以登陆

一共验证三次。成功即运行程序  ,只要验证通过即可。

形式   :机密游戏软件 需要知道用户名和密码,如果不知道 ,三次都失败,就把这个软件锁上。就打不开软件了。

有了文件之后就可以做很多事情了,只不过要合理安排 存储方式,

开局注册,把注册名 密码 存储到文件,然后登陆验证 时候,从密码文件里面,把用户 密码 读取出来,进行比较,看用户输入的是否相同,如果有 就可以开始玩这个游戏。如果输入用户名,密码三次的话,失败的话,就把用户名锁上。验证三次 不成功,把软件锁上,下次就无法运行。

 

 登陆验证

  open()

  os

 

 

验证形式,必须知道 验证名和密码。才可以开始运行这个程序,去玩这个游戏,如果三次都错,就直接锁上,下次就打不开。

用到两个 函数 open()、  os

Open:功能:写入信息 创建文件 读取内容

Os:功能:系统操作 ,判断文件是否存在。

 

普通循环 判断 例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'''
Heroes bate-0.2-1 英雄公测
'''
#普通判断版本
welcome = print ('welcome to Heroes world! -- 欢迎来到英雄世界!')
i = 0
while True:
     username = input ('login--注册用户名:')
     password = input ('password--输入你的密码:')
     i += 1
    
     if username == '王哥' and password =='administrator':
         print('<高级王VIP哥用户>')
         print('==loked登陆成功==')
         break
     elif i == 3:
         print('请输入正确管理员密码,你已经被loked 锁住了:')

 

 运行结果

blob.png输入正确用户密码显示blob.png

 

补充 while 循环

 blob.png

 

用IO文件 函数 open 和 os方法

下面就要创建一个文件,创建一个文件 用 open。会显示的更加好看。

 

   

下面就就不是 打印 loked 了 ,是通过 ope os 写出来的。

下面的思路是,创建一个记录信息的文件,如果有这个文件,那我就认为,这个软件是被锁上的,如果没有这个文件,那就继续可以输入用户名 和密码。

后期升级的话,那就判断有没有这个文件,如果有这个文件,里面记录着,某个人的名字,如果记录着,那就告诉代表这个账号被锁了。元旦过节,尽量 抽空学习 补上。



open os 运用 列子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'''
Heroes bate-0.2-1 英雄公测
'''
#IO内置函数  open os 版本
import os
welcome = print ('welcome to Heroes world! -- 欢迎来到英雄世界!')
i = 0
while True:
     if os.path.isfile('lock.log'):
         print('locked--上锁状态')
         break
     username = input ('login--注册用户名:')
     password = input ('password--输入你的密码:')
     i += 1
     if username == '王哥' and password =='administrator':
          pass
     else:
         if i == 3:
             open('lock.log','w').write(username)
             print('locked by-是它锁上的 %s'%username)
             break
         continue
     print('<高级王VIP哥用户>')
     print('==loked登陆成功,欢迎来到一刀999级的英雄无敌世界==')

 

 运行结果

blob.png 创建文件 并且写入的最后一个用户名称 blob.png

输入正确 用户 密码 就会 进入游戏 运行程序那边了。 这里 运行三次 是 退出 循环条件。没写其它东西。

blob.png

 

上锁后运行 状态 blob.png

 

小描述

open 是用来创建一个文件。

open('lock.log','w').write(username)

解译:打开一个文件名为('lock.log后缀的文件'),w是写入,调用方法写信息,写用户名 文件记录了最后输入的名字。。

/如果没有这个文件就自己创建一个。

print('locked by %s'%username)

解译:告诉是被那个用户锁上的。

为了判断创建 存储数据文件 lock.log是否存在。

这个时候 就要 导用一个模块, os ,为了判断 文件是否存在。

判断 文件是存在方法。  在os 当中有一个类,有个os.path-.isfile-方法判断是否存在,某一个文件,文件是不是文件,用它判断('lock.log')是否存在。后面 就破坏这个循环,判断成立,直接生效。

解锁方式 删除 在运行目录 创建的 文件即可。

让判断失效。


 一月二号小更新

生成文件对象

fileobject = open(filename,mode)

fileobject = file(filename,mode)



本章收获

IO 文件 中的 一个open 内置函数 使用

一个 os 类中的os.path.isfile 使用

2017年12月29日 王宇林

 

 

 

本文转自新网学会 51CTO博客,原文链接:http://blog.51cto.com/xwxhvip/2055725 ,如需转载请自行联系原作者

相关文章
|
10月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
382 1
|
11月前
|
安全 Python
告别 os.path 的繁琐:拥抱 Python 的 pathlib
告别 os.path 的繁琐:拥抱 Python 的 pathlib
618 6
|
XML JSON Go
Go语言中的文件与IO:JSON、CSV、XML处理
本文介绍了 Go 语言中对 JSON、CSV 和 XML 三种常见数据格式的处理方法。通过标准库 `encoding/json`、`encoding/csv` 和 `encoding/xml`,可以实现结构体与数据格式之间的序列化与反序列化。JSON 适合 Web API 和前后端通信,因其清晰易读;CSV 适用于表格数据和轻量级交换;XML 则支持复杂嵌套结构,常用于配置文件和 SOAP 协议。文中提供代码示例,涵盖基本使用、嵌套结构处理及实战建议,帮助开发者高效操作这些格式。
|
Unix Go
Go语言中的文件与IO:文件读写
本文介绍了 Go 语言中文件操作的基础方法,涵盖打开与关闭文件、读取和写入文件内容、追加写入以及复制文件等功能。通过 `os`、`bufio` 和 `io` 等标准库包,提供了高效且灵活的实现方式,如使用 `os.ReadFile` 读取整个文件、`bufio.Scanner` 逐行读取、`os.Create` 创建文件以及 `io.Copy` 复制文件内容。同时强调了错误处理的重要性,例如使用 `defer` 确保文件关闭,并推荐注意文件权限设置(如 UNIX 系统中的 `0644`)。最后以表格形式总结了常用操作及其推荐方法,便于快速查阅和应用。
|
Go 数据处理
Go语言中的文件与IO:bufio 和 scanner
Go 标准库中的 `bufio` 包高效读写功能,适用于文件和数据处理。`bufio.Reader` 支持按行或分隔符读取,`bufio.Writer` 提供高性能写入并需调用 `Flush()` 确保数据写入。`bufio.Scanner` 是处理文本文件(如日志、配置)的利器,可按行、单词等分割内容。本文详解其用法,并给出实践建议,如统计字符数、模拟 `tail -f` 和词频分析等。
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
631 14
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
788 34
|
机器学习/深度学习 API Python
Python 高级编程与实战:深入理解网络编程与异步IO
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发和 API 设计。本文将深入探讨 Python 在网络编程和异步IO中的应用,并通过实战项目帮助你掌握这些技术。
|
Python
文件元数据获取方法对比:`os.path` 与 `os.stat`
本文对比了Python中两种获取文件元数据的方法:`os.path`和`os.stat`。通过示例代码展示了如何获取文件大小和修改时间,并从性能、功能性和代码可读性三方面进行了详细对比。最终给出了根据具体需求选择合适方法的最佳实践建议。
415 2
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。