文件操作

一、路径

文件绝对路径:d:\python.txt

文件相对路径:在IDEA左边的文件夹中

二、编码方式

utf-8 gbk...

三、操作方式

1.只读

r 和 rb

绝对路径的打开操作
f = open('d:\even.txt',mode='r',encoding='UTF-8')
content = f.read()
print(content)
f.close()
#test
#简单的文件操作示例 在idea文件夹中打开操作
f = open('even',mode='r',encoding='UTF-8')
content = f.read()
print(content)
f.close() f = open('even',mode='rb') #以rb方式打开,后面则不用再跟encoding='UTF-8'
content = f.read()
print(content)
f.close()
#b'idea\xe4\xb8\xad\xe7\x9a\x84\xe7\xa4\xba\xe4\xbe\x8b'
*** 以什么编码方式储存的文件,就以什么编码打开进行操作。

2.只写 

w 和 wb

#对于w,没有此文件就会创建文件

f = open('log',mode='w',encoding='utf-8')    #log为创建的文件名
f.write('创建测试') #创建文件要写入的的内容
f.close()

3.追加内容

a 和 a+ 

#a
f = open('log',mode='a',encoding='utf-8') #log为需要追加的文件名
f.write('佳琪') #追加要写入的的内容
f.close() #a+
f = open('log',mode='a+',encoding='utf-8')
f.write('')
f.seek(0)
print(f.read())
f.close()

***** 4.读写

r+  和  r+b

f = open('log',mode='r+',encoding='utf-8')
print(f.read()) #先读
f.write('大,小') #后写
f.close() #如果在r+的模式下先写后读,会将此次写入的字符从这个文件开始进行覆盖写入
f = open('log',mode='r+',encoding='utf-8')
f.write('大,小') #先写
print(f.read()) #后读
f.close()

5.写读

w+ 和 w+b

f = open('log',mode='w+',encoding='utf-8')
f.write('') #先写
f.seek(0) #调整光标位置至开始
print(f.read()) #后读
f.close()
#

*** 文件操作之后 一定要加.close()
如果不加。可能未写入磁盘,导致文件部分丢失。
因为操作完,数据大多在内存里。
例如把word写上十几页后,直接把电脑关闭了。

*****最常用的
r+

四、文件操作功能详解

1.seek 和 tell

seek:按照字节定光标的位置

tell:告诉你光标的位置

obj = open('log',mode='r+',encoding='utf-8')
content = f.read(3) # 读前3个字符
f.seek(3) # 按照字节定光标的位置
f.tell() # 告诉你光标的位置
print(f.tell())
content = f.read()
print(content)

seek 和 tell

2.readline 和 readlines

line = f.readline()  # 一行一行的读
line = f.readlines() # 每一行当成列表中的一个元素,添加到list中

3.readable

f.readable()  # 是否可读

4.打开多个

with open('log',mode='r+',encoding='utf-8') as obj:
print(obj.read())
#f.close() 该格式可不写f.close(),自动关闭 #可以打开多个,且末尾不用加close
with open('log',mode='r+',encoding='utf-8') as f1,\
open('log',mode='r+',encoding='utf-8') as f2:
print(f1.read())
print(f2.read())

5.删除和重命名

修改文件的本质是先创建一个文件的bak然后进行修改,再删除源文件,再将bak文件重命名为源文件名

with open('even',encoding='utf-8') as f,open('even.bak','w',encoding='utf-8') as f2:
for line in f:
if '苹果' in line: #even中的内容:苹果
line = line.replace('苹果','梨子')
#写文件
f2.write(line)
import os
os.remove('even') #删除文件
os.rename('even.bak','even') #重命名文件 将even.bak重命名为even

 五、练习

 注册和登录

username = input('请输入你要注册的用户名>>>')
password = input('请输入你要注册的密码>>>') with open('list_of_info',mode='w',encoding='utf-8') as f: #跟上面绿色注释的代码等效,末尾不用加close()
f.write('{}\n{}'.format(username,password))
print('恭喜您,注册成功')
lis = []
i = 0
while i < 3:
usn = input('请输入你的用户名:')
pwd = input('请输入你的密码:')
with open('list_of_info',mode='r+',encoding='utf-8') as f1:
for line in f1:
lis.append(line)
if usn == lis[0].strip() and pwd == lis[1].strip():
print('登录成功')
break
else:print('账号或密码错误')
i+=1
username = input('请输入你要注册的用户名>>>')
password = input('请输入你要注册的密码>>>') f = open('list_of_info2',mode='w',encoding='utf-8')
f.write('{}\n{}'.format(username,password))
f.close()
# with open('list_of_info',mode='w',encoding='utf-8') as f: #跟上面代码等效,末尾不用加close()
# f.write('{}\n{}'.format(username,password)) print('恭喜您,注册成功')
lis = [] #定义一个空的list类lis
i = 0 #定义一个变量i为0,作为次数限制
while i < 3: #定义一个while循环 i < 3来限制错误次数
usn = input('请输入你的用户名:') #重新定义新的input输入变量usn用来进行登录
pwd = input('请输入你的密码:') #重新定义新的input输入变量pwd用来进行登录 f1 = open('list_of_info2', mode='r+', encoding='utf-8')
f.close() #with open('list_of_info',mode='r+',encoding='utf-8') as f1:
for line in f1: #f1进行for循环并用line表示
lis.append(line) #将line添加至之前定义的空lis中 if usn == lis[0].strip() and pwd == lis[1].strip(): #如果用户名和密码都能对应 则登录成功
print('登录成功')
break
else:print('账号和密码错误')
i+=1

终极傻瓜注释版本

												

Python基础 之 文件操作的更多相关文章

  1. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  2. python基础之文件操作

    对于文件操作中最简单的操作就是使用print函数将文件输出到屏幕中,但是这种操作并不能是文件保存到磁盘中去,如果下调用该数据还的重新输入等. 而在python中提供了必要的函数和方法进行默认情况下的文 ...

  3. Day3 Python基础学习——文件操作、函数

    一.文件操作 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过文件句柄对文件进行操作 关闭文件 #打开文件,读写文件,关闭文件 http://www.cnblogs.com/linha ...

  4. python基础14_文件操作

    文件操作,通常是打开,读,写,追加等.主要涉及 编码 的问题. #!/usr/bin/env python # coding:utf-8 ## open实际上是从OS请求,得到文件句柄 f = ope ...

  5. 【python基础】文件操作

    文件操作目录 一 .文件操作 二 .打开文件的模式 三 .操作文件的方法 四 .文件内光标移动 五. 文件的修改 一.文件操作介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用pyt ...

  6. python基础4文件操作

    在磁盘上读取文件的 功能都是由操作系统来实现的,不允许普通的程序直接操作磁盘,所以读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据( ...

  7. Python基础--基本文件操作

    全部的编程语言都一样,学完了一些自带的数据机构后,就要操作文件了. 文件操作才是实战中的王道. 所以,今天就来分享一下Python中关于文件的一些基本操作. open方法 文件模式 这个模式对于写入文 ...

  8. python基础(10):文件操作

    1. 初识文件操作 使⽤python来读写⽂件是非常简单的操作.我们使⽤open()函数来打开⼀个⽂件,获取到⽂ 件句柄,然后通过⽂件句柄就可以进⾏各种各样的操作了,根据打开⽅式的不同能够执⾏的操 作 ...

  9. Python基础学习——文件操作、函数

    一.文件操作 文件操作链接:http://www.cnblogs.com/linhaifeng/articles/5984922.html(更多内容见此链接) 一.对文件操作流程 打开文件,得到文件句 ...

随机推荐

  1. C#发送邮件类库

    public class Email { #region 发送邮件 /// <summary> /// 发送邮件 /// </summary> /// <param na ...

  2. C51 单片机的中断号以及中断向量

    1.外部中断0. 1:分别由引脚/INT0./INT1的电平信号引起. 2.定时/计数器0.1:分别由T0. T1的溢出引起. 3.串行口发送.接收:发送完一个字节或接收到一个字节引起. 上述共5个中 ...

  3. Canvas制作的下雨动画

    简介 在codepen上看到一个Canvas做的下雨效果动画,感觉蛮有意思的.就研究了下,这里来分享下,实现技巧.效果可以见下面的链接. 霓虹雨: http://codepen.io/natewile ...

  4. 大专生自学iOS到找到工作的前前后后

    先做个自我介绍,我13年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了.13年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学 ...

  5. MySQL索引的使用及注意事项

    索引是存储引擎用于快速找到记录的一种数据结构.索引优化应该是对查询性能优化最有效的手段了.索引能够轻易将查询性能提高几个数量级,"最优"的索引有时比一个"好的" ...

  6. linux 安全防护

    一.禁止ROOT用户远程登录 linux中root用户是超级管理员,可以针对root用户暴力破解密码,这样很不安全,工作中我们一般禁止root用户直接远程登陆,开设一个或多个普通用户,只允许登陆普通用 ...

  7. Java并发编程:浅析几种线程安全模型 [转]

    多线程编程一直是老生常谈的问题,在Java中,随着JDK的逐渐发展,JDK提供给我们的并发模型也越来越多,本文摘取三例使用不同原理的模型,分析其大致原理.目录如下: 1.COW之CopyOnWrite ...

  8. sqlserver 导出数据库表结构

    https://www.cnblogs.com/miaomiaoquanfa/p/6909835.html SELECT 表名 = case when a.colorder=1 then d.name ...

  9. 在线预览word,excel文档

    Google Doc 示例:https://jsfiddle.net/7xr419yb/ Microsoft Office 示例:https://jsfiddle.net/gcuzq343/

  10. day 25 模块与包

    一.模块   模块就是一个包含了python定义和申明的文件,文件名就是模块的名字加上.py的后缀/ 模块的分类:     1.使用python编写的py文件     2.已被编译位共享库或者DLL或 ...