专栏首页python入门学习教程python3 文件操作常用函数用法示例

python3 文件操作常用函数用法示例

1. file.close() 关闭文件。关闭后文件不能再进行读写操作,需要重新打开才能进行读写。

f = open('demo.text' , 'r')           # 使用只读方式打开文本
print(f.read())                # 打印demo.text文件内容
f.close()                  # 关闭文件

2. file.flush() 将缓存区中的数据立刻写入文件,同时清空缓存区, 而不是被动的等待缓存数据写入。

f = open('demo.text' , 'w')           # 使用只写方式打开文本
print(f.write('test'))                # 打印写入demo.text文件的内容
f.flush()                 # 刷新缓冲区
f.close()                  # 关闭文件

注:该方法没有参数和返回值

3. file.fileno() 该方法返回一个整型的文件描述符(file descriptor FD 整型),可以用在如os模块的read方法等一些底层操作上。

f = open("demo.txt", "wb")                 # 文件1:demo.text

print ("文件名为: ", f.name)

f1 = open("dem.txt", "wb")                 # 文件2:dem.text

print ("文件名为: ", f1.name)

f2 = open("d.txt", "wb")                 # 文件3:d.text

print ("文件名为: ", f2.name)

fid = f.fileno()                  # 调用file.fileno()方法

fid1 = f1.fileno()

fid2 = f2.fileno()

print ("文件描述符为: ", fid)

print ("文件描述符为: ", fid1)

print ("文件描述符为: ", fid2)

# 关闭文件

f.close()

f1.close()

f2.close()

#输出:
文件名为:  demo.txt
文件名为:  dem.txt
文件名为:  d.txt
文件描述符为:  3
文件描述符为:  4
文件描述符为:  5

4. ile.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。

f = open('demo.text' , 'wb')           # 使用只写方式打开文本
print('文件名为:' , f.name)                # 打印demo.text文件名,f.name调用文件名
te = f.isatty()              # 刷新缓冲区
print ('返回值:', te)
f.close()                  # 关闭文件

#输出:
文件名为:demo.text
返回值:False

5. file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。

#假设文本内容为:qwer这是一个测试
f = open('demo.text' , 'r+')           # 使用读写方式打开文本
test1 = f.read(4)          # 设置读取的字符数
print ('读取的是:', test1)
f.seek(0)             # 将指针移到首位
test2 = f.read(8)          # 设置读取的字符数
print ('读取的是:', test2)
f.close()                  # 关闭文件

# 输出:
读取的是: qwer                         # 英文为1个字符
读取的是: qwer这是一个             # 中文也为1个字符

6. file.readline([size]) 读取整行,包括 "\n" 字符。如果给它指定一个非负数的参数,那么将返回指定大小的字符数,包括 "\n" 字符

#假设文本内容为:
1.这是第一行
2.这是第二行
3.这是第三行

f = open('demo.text' , 'r+')           # 使用读写方式打开文本

line1 = f.readline()
print ("读取第1行:{}" .format(line1))

line2 = f.readline(4)
print ("读取的字符串为:{}" .format(line2))

f.close()                  # 关闭文件

# 输出:
读取第1行:1.这是第一行
读取的字符串为:2.这是

7. file.readlines([sizeint]) 读取所有行并返回列表,可以使用for...in...循环处理列表数据,如果sizeint > 0,那么返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。

# 如果碰到结束符 EOF 则返回空字符串。
# 假设文本内容为:
1.这是第一行
2.这是第二行
3.这是第三行

f = open('demo.text' , 'r+')           # 使用读写方式打开文本
for line in f.readlines():             # 依次读取每行 
    line = line.strip()                # 去掉每行头尾空白
    print ("读取的数据:{}" .format(line))

# 关闭文件
f.close()

# 输出:
读取的数据:1.这是第一行
读取的数据:2.这是第二行
读取的数据:3.这是第三行

8. file.seek(offset, whence) 移动文件读取指针到指定位置,它有两个参数,分别是:

  • offset --- 开始的偏移量,代表需要移动偏移的字节数,负数表示从倒数第几位开始。
  • whence --- 可选参数,默认值为 0。给 offset 定义一个参数,表示从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。
#假设文本内容为:0123456
f = open('demo.text', 'rb+')

print(f.read())          # 输出:b'0123456'

f.seek(3)      # 移动到文件的第六个字节

print(f.read(1))         # 输出:b'3'

f.seek(-4, 2)  # 移动到文件倒数第三个字节

print(f.read(1))         # 输出:b'5'

f.close()            # 关闭文件

9. file.tell() 返回文件当前位置,即文件指针当前位置。

#假设文本内容为:0123456
f = open('demo.text', 'r+')
print(f.read())          # 输出:0123456

# 获取当前文件位置
n = f.tell()
print ("当前位置: {}" .format(n))       #输出:7

f.close()            # 关闭文件

10. file.truncate([size]) 从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 windows 系统下的换行代表2个字符大小。

#假设文本内容为:
123
223
323

f = open('demo.text', 'r+')           # 只读方式打开文本
line = f.readline()                     # 读取整行
print("读取的数据:{}" .format(line))          # 输出:读取的数据:123

# 从当前位置截断
f.truncate()
line = f.readlines()                     # 读取所有行
print("读取的数据:{}" .format(line))          # 输出:读取的数据:['223\n', '323']

f.close()            # 关闭文件

11. file.write(str) 将字符串写入文件,返回的是写入的字符长度。

#调用write()方法必须先拥有写入权限
#假设文本内容为:123
f = open('demo.text', 'r+')         #以读写模式打开文本
f.write('这是一个字符串')           #write()会从头开始写入内容,并覆盖原来的内容
f.seek(0)               #将文本指针移到文首
print(f.read())          # 输出:这是一个字符串
f.close()              #关闭文本

12. file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

f = open("test.text", "w+")           #创建一个test文本文件,并以读写模式打开
s = ["python\n", "工程狮"]           #创建一个名为s的字符串列表
f.writelines(s)                   #写入字符串列表
f.seek(0)                      #将文本指针移到文首
print(f.read())         #打印文本内容

f.close()           # 关闭文件

#输出:
python
工程狮

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python3:文件操作常用mode参数用法详解

    python鱼霸霸
  • python3 文件操作常用mode参数用法详解

    python鱼霸霸
  • python入门教程NO.8 用python写个存款利息计算器

    函数是一段组织好的\ 可重复使用的\ 用来实现特定功能的代码块。 函数能提高代码的模块性,和代码的重复利用率,使一些重复编写的代码简洁化,增加代码的可读性和美...

    python鱼霸霸
  • css截断长文本显示

    实现 截断长文本显示处理,以前是通过后台的截取,但这种方法容易丢失数据,不利于SEO。 而通过前端css的截断,则灵活多变,可统一运用与整个网站。 这项技术主要...

    欲休
  • iOS-规避iOS审核4.3规则的重心

    最近iOS卡审严重,很多小伙伴都被拒了,也有很多小伙伴收到4.3礼包,这里就说说4.3吧!

    用户6004386
  • 全球高校CS实力最新排行:清华AI界第二,中科院视觉领域最强

    全球各大高校CS专业哪家强?AI领域谁能称王?过去一年和过去十年排名又有什么变化?

    量子位
  • 的卢深视张斌:立足“云、端、芯”战略,打造“纯三维”人脸识别技术丨镁客请讲

    张斌指出,虽然眼下从事三维人脸识别技术研发的公司很多,但其中的不少只能算作“半三维”技术或产品。

    镁客网
  • Web性能优化:图片优化

    马哥linux运维 | 最专业的linux培训机构 ---- 我自己的Blog:http://blog.cabbit.me/web-image-optimiz...

    小小科
  • python shell 爬虫 妹子图片

    最近开始学Python,人们学一门语言潜移默化的第一个命令往往那个就是 hello world!

    py3study
  • 数据结构-向量化

    读一些无用的书,做一些无用的事,花一些无用的时间,都是为了在一切已知之外,保留一个超越自己的机会,人生中一些很了不起的变化,就是来自这种时刻。 ...

    DataScience

扫码关注云+社区

领取腾讯云代金券