python8文件操作

文件操作

<1>、打开文件:
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件
open(文件名,访问模式) ; open里面有两个参数。
示例如下:
f = open(‘test.txt’, ‘w’) open有返回值 找个变量接收 。

访问模式 说明
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。如果文件不存在会崩溃。文件必须存在
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
用编辑器编辑的文件是文本文件;图片、视频、MP3等是二进制文件

with open(r’C:\Users\Administrator.USER-20190512NQ\Desktop\a.txt’, ‘r’, encoding=‘utf-8’) as f:
用open,首先在windows下创建一个文件,然后把文件的路径复制过来,这里需要转义,加上"r",

# data = f.read(5)                         读
# data1 = f.read()
# print(data1)

f=open(‘a.txt’,‘r’,encoding=‘utf-8’)
data = f.read()
print(data)
<2>关闭文件close
close( )

1、f = open(r"D:\a.txt",mode=‘r’,encoding=‘gbk’)
2、f = open(r"D:\a.txt",mode=‘rb’)
content = f.read()
print(content)
f.close()

#是否可读
# print(f.readable())
#按行读
# print(f.readline())      ¥一行一行的读

#以列表形式读取
# print(f.readlines())     ¥ 按照行的方式,把整个文件都读取了,返回的是一个列表,其中每一行的数据是一个元素。

写文件 ,没有则会创建文件, 有文件把源文件删除在写
f = open(“a1.txt”,mode=‘wb’,encoding=‘utf-8’) # 执行会报错
f = open(“a1.txt”,mode=‘wb’)#不用加这个,encoding=‘utf-8’,因为是二进制形式 不用编码了 是byte类型
f.write(“技术改变命运”.encode(‘utf-8’)) #wb 是bytes类型 把str 转换成bytes类型 用encode
f.close()
在这里插入图片描述
在这里插入图片描述

覆盖写

with open(r’C:\Users\Administrator.USER-20190512NQ\Desktop\a.txt’, ‘w’, encoding=‘utf-8’) as f:
# f.write(‘你好美女\n你好帅哥’)
# result = f.writable()
# print(result)
# f.writelines([‘a’,‘b’,‘c’])

追加写

with open(r’C:\Users\Administrator.USER-20190512NQ\Desktop\a.txt’, ‘a’, encoding=‘utf-8’) as f:
f.write(’\ndddd’)

#bytes读
在utf-8字符集当中,中文占3个字节,生僻字占的更多
在gbk字符集当中,中文占2个字节,生僻字更多
with open(r’C:\Users\Administrator.USER-20190512NQ\Desktop\a.txt’, ‘rb’) as f:
print(f.read())

bytes写
with open(r’C:\Users\Administrator.USER-20190512NQ\Desktop\a.txt’, ‘wb’) as f:
# f.write(b’abc’)
# f.write(‘abcd’.encode(‘utf-8’))
# f.write(‘你好’.encode(‘utf-8’))

光标的移动

with open(r’C:\Users\Administrator.USER-20190512NQ\Desktop\a.txt’, ‘rb’) as f:
# f.seek(2,0) #前面的数字代表移动几个位置,后面的数字:0代表开头,1代表相对位置,2代表末尾
# f.seek(2,1)
f.seek(-2,2)
print(f.read())

tail -f /var/log/message

导入模块

为什么要导入模块?
1、从文件级别组织程序,更方便管理随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用
2、拿来主义,提升开发效率同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率。

模块就是文件,把文件写好函数,再写一个文件,可以调用这个文件的方法。

1.写一个 test.py文件
import test

test.test1()
2.from test import test1

test1()

还可以给这个起别名, from test import test1 as tt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值