文件的操作

hanfei的博客.txt

1/文件的路径
2、编码方式
3、操作方式:只读,只写,追加,读写,写读...
只读
f=open('hanfei的博客',mode='r',encoding='utf-8')
print(f.read()) #战术上勤奋掩盖不了战略上的懒惰
f.close() f=open('hanfei的博客',mode='rb') #rb代表只读bytes类型,不需要写编码方式
print(f.read(),type(f)) #b'\xe6\x88\x98\xe6\x9c\xaf\xe4\xb8\x8a\xe5\x8b\xa4\xe5\xa5\x8b\xe6\x8e\xa9\xe7\x9b\x96\xe4
\xb8\x8d\xe4\xba\x86\xe6\x88\x98\xe7\x95\xa5\xe4\xb8\x8a\xe7\x9a\x84\xe6\x87\x92\xe6\x83\xb0'
f.close()
读写 r+
先读在写
f =open('hanfei的博客',mode='r+',encoding='utf-8')
print(f.read()) #先把内容读出来,现在光标在最后
f.write('hahhaha') #然后在写
f.close() f =open('hanfei的博客',mode='r+b') #以bytes类型写读,一般用不到
print(f.read()) #先把内容读出来,现在光标在最后
f.write('bbb'.encode('utf-8')) #然后在写 先写再读
f =open('hanfei的博客',mode='r+',encoding='utf-8') #文件内容:萨达撒大大萨达萨达是
f.write('我是') #从头开始写,有多少位占多少位,光标在这里,最后在读出来
print(f.read()) #撒大大萨达萨达是
f.close() #
只写
f=open('hanfei的博客',mode='w',encoding='utf-8')
f.write('放假了') #如果没有这个文件,则创建写入。有这个文件写的时候会把文件内容清楚,在写 f=open('hanfei',mode='wb') #写成bytes类型
f.write('博客园'.encode('utf-8')) #srt-->>bytes存储 编码utf-8
写读 w+
f=open('hanfei的博客',mode='w+',encoding='utf-8')
f.write('放假了')
print(f.read()) #空的 因为写完后光标在最后,所以读不到什么东西了 f=open('hanfei的博客',mode='w+',encoding='utf-8')
f.write('放假了')
f.seek(0) #设置光标
print(f.read()) #放假了
追加a
f = open('hanfei',mode='a',encoding='utf-8')
f.write('good!') #默认光标在最后一位,在追加 f = open('hanfei',mode='ab')
f.write('day day up!'.encode('utf-8'))
a+(也是读写)
f = open('hanfei',mode='a+',encoding='utf-8')
f.write('good!~~~') #默认光标在最后一位,在追加
f.seek(0)
print(f.read()) #博客园good!good!good!day day up!good!good!good!~~~good!~~~

功能详解:seek、tell、readline、readlines

seek简介:用于移动文件读取指针到文件指定的位置
file. seek(offset[, whence])
whence:0,1,2三个参数,0表示文件开头,1表示当前位置,2表示文件结尾
offset:偏移量,可正可负,正数表示向后移动offset位,负数表示向前移动offset位。
f = open('hanfei',mode='r+',encoding='utf-8')  #博客园good!good!good!day day up!good!good!good!~~~good!~~~我是
# print(f.read(3))#博客园 #读出来的都是字符
f.seek(3) #seek设置光标 是按照字节取的,utf-8里,3个字节表示一个中文,1个字节表示一个英文字符
count=f.tell() #tell 告诉你光标的位置
print(count) #3 光标的位置 print(f.read())
f.close()
f.readable() #判断是否可读 返回T or F
line=f.readline() #一行一行s的读
line=f.readlines() #每一行当成一个元素,添加到列表中例如['asd\n', '123\n', '4444'] print(line)
for line in f:  #对文件中内容循环打印出来,不要全部读出来,要限制字符数量f.read(1000)
print(line) #abc12 f.close()

截取

f.truncate(5) #截取到第5位

当open文件的时候,最后都要加上close.还有另外一种方法不用close关闭文件 with open

with open('hanfei',mode='r+',encoding='utf-8') as f1,\
open('hanfei',mode='w+',encoding='utf-8') as f2: for line in f1:
print(line) with open('test',mode='w+',encoding='utf-8') as f1,\
open('test',mode='r+',encoding='utf-8') as f2:
f1.write('asd\n123\n4444')
f1.seek(0)
print(f1.read()) # print(f2.readlines()) #['asd\n', '123\n', '4444']
f2.seek(2,0) #从头开始读,光标在第二位 #d
print(f2.read())

练习题:登录注册、用户名密码储存到文件中

#需求:注册的时候把用户名密码储存到文件中
username = input('请输入您要注册的用户名:')
password = input('请输入要设置的密码:')
with open('user_of_info', mode='w', encoding='utf-8') as f:
f.write('{usmn}\n{passwd}'.format(usmn=username, passwd=password))
f.seek(0)
print(f.read(), type(f.read())) # hanfei 1234 i=0
lis=[]
while i <3:
user = input('请输入您的用户名:')
pwd = input('请输入密码:')
with open('user_of_info',mode='r+',encoding='utf-8') as f1:
for line in f1:
lis.append(line)
#print(lis)
if user.strip() ==lis[0].strip() and pwd.strip()==lis[1].strip() :
print('登陆成功!')
break else:
print('用户名或密码错误,请重试') i+=1
#文件处理

    #打开文件
#open('路径','打开方式','指定编码方式')
#打开方式 r w a r+ w+ a+ b #不写的话(默认是read)
#r+ 打开文件直接写 和 读完在写 (光标位置不同)
# 建议读的时候就读,写的时候就写,只能单独的方式去操作文件 #操作文件
#读
#read 一次性读
#readline #一行一行读
#不知道在哪儿结束
#视频、图片用rb 读,按照字节读取
#for循环--最好 #写
#write
#\n 换行
#光标——文件指针
#seek 指定光标移动到某个文职
#tell
#truncate #关闭文件
# close
 修改文件: 文件是不能修改的
# (只能先把文件读出来,在写到另一个文件中,把旧文件删除,新文件重命名为原文件名)
f = open('小护士班主任',mode='w',encoding='utf-8')
f.write('班主任:星儿\n小护士:金老板') with open('小护士班主任',mode='r',encoding='utf-8')as f,\
open('小护士班主任.bak',mode='w',encoding='utf-8') as f2:
for line in f:
if '星儿' in line:
line = line.replace('星儿','阿娇') f2.write(line) #删除文件和重命名文件 导入os模块
import os
os.remove('小护士班主任') #删除文件
os.rename('小护士班主任.bak','小护士班主任') #重命名

												

python之路day08--文件的操作的更多相关文章

  1. 记录我的 python 学习历程-Day08 文件的操作

    文件操作的初识 用 python 代码对文件进行各种操作. 基本构成: 文件路径:path 打开方式:读.写.追加.读写.写读-- 编码方式:utf-8 / gbk / gb2312-- f = op ...

  2. Python之路 day2 文件基础操作

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa ''' #f,文件句柄;模式 a : append 追加文件内容 f = open( ...

  3. 小白的Python之路 day2 文件操作

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  4. python glob fnmatch 用于文件查找操作

    參考: http://python.jobbole.com/81552/:Python模块学习:glob文件路径查找 http://blog.csdn.net/suiyunonghen/article ...

  5. 初学python之路-day08前期总结

    # 1# 计算机原理:控制器 运算器 存储器 input设备 output设备 IO流# 三大核心:CPU 内存 硬盘 # 内存分布:栈区 与 堆区# 如二进制与十进制的转换,如1111转成十进制为1 ...

  6. 初学python之路-day08

    #学习了编码后,还要了解三种字符串.# 一.# 普通字符串:u''以字符作为输出单位,# print(u'abc') # 用于显示abc# # 二进制字符串:b'' 二进制字符串以字节作为输出单位# ...

  7. 《转》Python学习(15)-对文件的操作(二)

    转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...

  8. Python学习日记之文件读取操作

    Python内置了文件读写的函数open,read 用法示例: open('/home/root/files.txt ') 在打开文件后,操作完成后可以使用close()关闭文件,但比较好的文件读写方 ...

  9. Python之路Day08

    文件操作 open() -- 打开 open通过Python控制操作系统打开文件 f=open('文件路径',mode='r',encoding='utf-8') mode -- 不写就默认是r f ...

  10. 小白学习Python之路---py文件转换成exe可执行文件

    一.背景 今天闲着无事,写了一个小小的Python脚本程序,然后给同学炫耀的时候,发现每次都得拉着其他人过来看着自己的电脑屏幕,感觉不是很爽,然后我想着网上肯定有关于Python脚本转换成可执行文件的 ...

随机推荐

  1. mysql入门知识

    数据库 什么是数据库就是存储数据的仓库(容器) 存储数据的方式1.变量 无法永久存储2.文件处理 ,可以永久存储 文件处理存在的弊端: 1.文件处理速度慢 2.文件只能在自己的计算机上读写 无法被共享 ...

  2. 解决在圆角手机(如小米8)上自定义Dialog无法全屏的问题

    在小米8等一系列圆角的手机上测试项目时,发现我的自定义dialog无法全屏了,这时我的dialog全屏的解决方案还是和网上大部分人是一样的 Window window = getWindow(); i ...

  3. java:编程比赛中有用的方法整理(一)数组

    我曾经参加过几次编程比赛,但是当时用的是c语言,现在学习了java,打算专攻java组,故以此整理. 数组无论在哪里都必不可少. 一.数组的拷贝: 使用Arrays类的copyOf方法: 1.将一个数 ...

  4. 教你一招 | 用Python实现简易可拓展的规则引擎

    做这个规则引擎的初衷是用来实现一个可序列号为json,容易拓展的条件执行引擎,用在类似工作流的场景中,最终实现的效果希望是这样的: 简单整理下需求 执行结果最终返回=true= or false 支持 ...

  5. VS2017的MVC和Angular联合开发的配置文件作用

    在通过MVC和Angular联合开发项目时,项目里有几个重要的配置文件,下面列出这几个配置文件的分析和比较: 主要配置文件有appsettings.json,tsconfig.json,package ...

  6. 下载合适的tomcat版本

    Tomcat因技术先进.性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器.对于新手来讲,如何下载合适的tomcat版本呢?今天我们以下 ...

  7. 安装composer时,提示 /usr/bin/env: php: 没有那个文件或目录

    今晚在Ubuntu环境上安装composer后,想查看下是否安装成功,使用composer -v,结果提示:/usr/bin/env: php: 没有那个文件或目录 现说说我的解决办法: 它提示的原因 ...

  8. 解决 WordPress“正在执行例行维护,请一分钟后回来”

    WordPress在升级程序.主题.插件时,都会先切换到维护模式,也就是显示 “正在执行例行维护,请一分钟后回来(Briefly unavailable for scheduled maintenan ...

  9. python学习_2

    1.pycharm部分技巧 1)创建时路径尽量要避免中文2)用滚轮调整编辑器字体大小    1.file->setting...->editor->general 搜索'mouse' ...

  10. Thermostat:双层存储结构的透明巨页内存管理机制

    这是一篇由密歇根大学的Neha Agarwal 和 Thomas F. Wenisch,发表在计算机系统顶会ASLOS的论文,Thermostat: Application-transparent P ...