文件操作

一、路径

文件绝对路径: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. Gradle Goodness: Adding Tasks to a Predefined Group

    In Gradle we can group related tasks using the group property of a task. We provide the name of our ...

  2. sharepoint2016安装OOS,OOS场负载均衡

    Office Online Server is the successor to Office Web Apps Server. It may be connected to SharePoint, ...

  3. unittest单元测试框架之unittest工作原理(一)

    1.Unittest 核心组件 test case.test suite.test runner.test fixture 2.unittest 静态图 Testcase:一个 testcase 就是 ...

  4. Knowledge Point 20180305 详解精度问题

    1.1 精度与基本数据类型运算的深度解析 我们在探讨Java基本数据类型时多次提到过精度的问题,那么计算机中的精度究竟是什么样的,为什么我们有时候的计算和我们预期的不同呢?下面我们通过精度来了解: 1 ...

  5. Vue.js与 ASP.NET Core 服务端渲染功能整合

    http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/ 原作者:Mihály Gyöngyösi 译者:oop ...

  6. Nodejs中获取参数以及处理参数

    先看题干效果 在这里我们建了一个表单 填入表单需要提交的信息 对两个参数进行获取和一个加法计算 表单html代码 <form action='http://localhost:8080' met ...

  7. 如何创建systemd定时任务

    1. 如何创建一个定时任务,通过systemd系统 1. 如何创建一个定时任务,通过systemd系统 1.1. systemd中的timer 1.2. 自定义定时任务 1.2.1. 具体步骤 1.2 ...

  8. NPOI读取Excel遇到的坑

    NPOI是POI的.NET版本.POI是用Java写成的库,能帮助用户在没有安装Office环境下读取Office2003-2007文件.NPOI在.NET环境下使用,能读写Excel/Word文件. ...

  9. python打印九九乘法表

    每种编程语言都可能会遇到编写“九九乘法表”的问题,用Python来处理也是很简单的,具体代码如下(基于Python3)): i = 1 while i <= 9: j = 1 while j & ...

  10. Ubuntu12.04下zxing源码编译

    1.下载zxing源码 git clone https://github.com/15903016222/zxing-cpp.git 2.安装依赖工具cmake sudo apt-get instal ...