Python教程:文件和读写的详细教程

文件操作的模式

文件操作的模式如下表:
在这里插入图片描述

1. open 打开文件

使用 open 打开文件后一定要记得调用文件对象的 close() 方法。比如可以用 try/finally 语句来确保最后能关闭文件。

file_object = open(r'D:\test.txt') # 打开文件 
try:
     all_the_text = file_object.read( ) # 读文件的全部内容
finally:
     file_object.close( ) # 关闭文件

print(all_the_text)

注:不能把 open 语句放在 try 块里,因为当打开文件出现异常时,文件对象 file_object 无法执行 close() 方法。

2. 读文件

读文本文件方式打开文件

file_object = open(r'D:\test.txt', 'r') # 打开文件
#第二个参数默认为 r
file_object = open(r'D:\test.txt') # 打开文件

读二进制文件方式打开文件

file_object= open(r'D:\test.txt', 'rb') # 打开文件

读取所有内容

file_object = open(r'D:\test.txt') # 打开文件
try:
     all_the_text = file_object.read( )# 读文件的全部内容
finally:
     file_object.close( ) # 关闭文件
print(all_the_text)

读固定字节

file_object = open(r'D:\test.txt', 'rb') # 打开文件
try:
    while True:
         chunk = file_object.read(100) # 读文件的100字节
         if not chunk:
            break
         #do_something_with(chunk)
finally:
     file_object.close( ) # 关闭文件

读每行 readlines

file_object = open(r'D:\test.txt', 'r')  # 打开文件
list_of_all_the_lines = file_object.readlines( ) #读取全部行
print(list_of_all_the_lines) 
file_object.close( ) # 关闭文件

如果文件是文本文件,还可以直接遍历文件对象获取每行:

file_object = open(r'D:\test.txt', 'r') # 打开文件

for line in file_object:
    print(line)

file_object.close( ) # 关闭文件

3. 写文件

写文本文件方式打开文件

file_object= open('data', 'w')

写二进制文件方式打开文件

file_object= open('data', 'wb')

追加写文件方式打开文件

file_object= open('data', 'w+')

写数据

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
all_the_text="aaa\nbbb\nccc\n"
file_object = open(r'D:\thefile.txt', 'w') # 打开文件
file_object.write(all_the_text) #写入数据
file_object.close( ) # 关闭文件

写入多行

all_the_text="aaa\nbbb\nccc\n"
file_object = open(r'D:\thefile.txt', 'w')# 打开文件
file_object.writelines(all_the_text) #写入数据
file_object.close( ) # 关闭文件

追加

file = r'D:\thefile.txt'
with open(file, 'a+') as f: # 打开文件
     f.write('aaaaaaaaaa\n')  

判断文件是否存在:

import os.path
if os.path.isfile("D:\\test.txt"): # 判断文件是否存在
    print(":\\test.txt exists")

import os
os.getcwd()  # 获得当前目录
os.chdir("D:\\test.txt") # 改变当前目录

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python教程:文件和读写的详细教程 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • python学习:反射的四种基本方法

    class Person(object): def __init__(self): pass def info(self): print(‘我是person类中的info方法’) 1.getattr()方法 这个方法是根据字符串去某个模块中寻找方法 instantiation = reflect.Person()#先实例化 f = getattr(insta…

    Python开发 2023年4月2日
    00
  • Python中高阶函数与装饰器教程

    1高阶函数 1.1 数学概念 回顾下数学知识: y=f(x) 这是最开始接触的普通函数 y=g(f(x)) 这个就是我们接触到的高阶函数 在数学和计算机科学中,高阶函数至少应当是满足下面一个条件的函数: 1)接受一个或者多个函数作为参数 2)输出一个函数 程序中我们的高阶函数也类似 示例计数器的函数: def counter(base): def inc(s…

    Python开发 2023年3月31日
    00
  • Python3基础教程:return和yield的区别

    一、说明 return一直中,每中语言中其没没有很大差别,就不多说了。(shell语言return的是退出状态,可能差别是比较大的) 最早看到yield应该是哪们语言用来调整什么线程优先级的,记不清了,不过那里的yield和python中的yield应该功能有区别。 python中最早看到yield应该是使用scrapy框架写爬虫的时候,之前也有去看yile…

    Python开发 2023年4月2日
    00
  • 10道Python面试题

    1、Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别) 答:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。 浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数…

    Python开发 2023年4月2日
    00
  • Python学习:property装饰器

    1.property 装饰器:装饰器是在不修改被装饰对象源代码以及调用方式的前提下为被装饰对象添加新功能的可调用对象 property是一个装饰器,是用来绑定给对象的方法伪造成一个数据属性 装饰器property,可以将类中的函数“伪装成”对象的数据属性,对象在访问该特殊属性时会触发功能的执行,然后将返回值作为本次访问的结果。 使用property有效地保证…

    Python开发 2023年4月2日
    00
  • python3教程:*和**的打包和解包的用法

    一. 打包参数 1. * 的作用:在函数定义中,收集所有的位置参数到一个新的元组,并将这个元组赋值给变量args >>> def f(*args): print(args) >>> f() () >>> f(1) (1,) >>> f(1, 2, 3, 4) (1, 2, 3, 4) &…

    Python开发 2023年4月2日
    00
  • python获取对象属性的几种方法

    当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢? 1.使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> type(123) <class ‘int’> >>> type(‘str’) <class ‘str’> &g…

    Python开发 2023年4月2日
    00
  • python学习: fire库的使用教程

    一. 介绍 fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何额外的工作,只需要从主模块中调用fire.Fire(),它会自动将你的代码转化为CLI,Fire()的参数可以说任何的python对象 二. 安装 pip install fire 三. 用法 实例1 : 单个函数:pyth…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部