Python学习 Day11 文件的读写原理(2)

文件的读写原理(2)

(一)文件对象的常用方法

  1. read([size]):从文件中读取size个字节或字符的内容返回,若省略size,则读取到文件末尾
  2. readline():从文本文件中读取一行字符
  3. readlines():把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回
  4. write(str):将字符串str写入文件
  5. writelines(s_list):将字符串列表s_list写入文本文件,不添加换行符
  6. seek(offset[,where]):把文件指针移动到新的位置,offset表示相对于where的位置
  • offset:为正往结束方向移动,为负往开始方向移动
  • where(0):从文件头开始结算(默认值)
  • where(1):从当前位置开始计算
  • where(2):从文件尾开始计算

  • 7.tell():返回文件指针的当前文件
    8.flush():把缓冲区的内容写入文件,但不关闭文件
    9.close():把缓冲区的内容写入文件,同时关闭文件,释放文件中相关资源

file=open('a.txt','r')
#print(file.read(2)) #读取两个字符  世界
#print(file.readline()) #读取一行  世界
#print(file.readlines()) #读取全部内容,以列表方式输出  ['世界\n', '中国']

file=open('a.txt','a')
#file.write('hello')
lst=['java','python','go']
file.writelines(lst)
file.close()
file=open('a.txt','r')
file.seek(2)
print(file.read())
file.close()
界
中国javapythongo

Process finished with exit code 0
file=open('a.txt','r')
file.seek(2)
print(file.read())
print(file.tell())
file.close()
界
中国javapythongo
22

Process finished with exit code 0

(二)with语句(上下文管理器)

  • with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此达到资源释放的目的
  • 语法:
  • with open(‘filename’,‘file_op’) as src_file:

with open('logo.png','rb') as src_file:
    with open('copy2logo.png','wb') as target_file:
        target_file.write(src_file.read())

(三)OS模块的常用函数

  • OS模块是Python内置的与操作系统功能和文件系统功能相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样
  • OS模块与os.path模块用于对目录或文件进行操作

#os模块是与操作系统相关的一个模块
import os
#os.system('notepad.exe') #打开记事本
#os.system('calc.exe')    #打开计算器
#直接调用可执行文件
os.startfile('C:\\Program Files (x86)\\Tencent\\QQ\\Bin\\qq.exe')

  • OS模块操作目录相关函数
  • 1.getwd():返回当前的工作目录
  • 2.listdir():返回指定路径下的文件和目录信息
  • 3.mkdir(path[,mode]):创建目录
  • 4.makedirs(path1/path2…):创建多级目录
  • 5.rmdir():删除目录
  • 6.removedirs():删除多级目录
  • 7.chdir(path):将path设置为当前工作目录
import os
print(os.getcwd())

lst=os.listdir('../chap15') #返回该路径下的全部文件和目录信息
print(lst)

#os.mkdir('new_dir2')
#os.makedirs('A/B/C') #创建多级目录

#os.rmdir('new_dir2') #删除目录
#os.removedirs('A/B/C')

(四)os.path模块

  • 1.abspath(path):用于获取文件或目录额绝对路径
  • 2.exist(path):用于判断文件或目录是否还存在,如果存在则返回True,否则返回False
  • 3.join(path,name):将目录与目录或文件名连接起来
  • 4.splitext():分离文件名和扩展名
  • 5.basename(path):从一个目录中提取文件名
  • 6.dirname(path):从一个路径中提取文件路径,不包括文件名
  • 7.isdir(path):用于判断是否为路径

import os.path
print(os.path.abspath('demo13.py'))
print(os.path.exists('demo3.py'),os.path.exists('demo18.py')) #True False
print(os.path.join('E:\\python','demo13.py')) #E:\python\demo13.py
print(os.path.split('E:\\vippython\\chap15\\demo13.py')) #('E:\\vippython\\chap15', 'demo13.py')
print(os.path.splitext('demo13.py')) #('demo13', '.py')
print(os.path.basename('E:\\vippython\\chap15\\demo13.py')) #demo13.py
print(os.path.dirname('E:\\vippython\\chap15\\demo13.py')) #E:\vippython\chap15
print(os.path.isdir('E:\\vippython\\chap15\\demo13.py')) #False

#列出指定目录下的所有py文件
import os
path=os.getcwd()
lst=os.listdir(path)
for filename in lst:
    if filename.endswith('.py'):
        print(filename)
demo1.py
demo10.py
demo11.py
demo12.py
demo13.py
demo14.py
demo15.py
demo16.py
demo2.py
demo3.py
demo4.py
demo5.py
demo6.py
demo7.py
demo8.py
demo9.py
__init__.py

Process finished with exit code 0

import os
path=os.getcwd()
lst_files=os.walk(path)
for dirpath,dirname,filename in lst_files:
    print(dirpath)
    print(dirname)
    print(filename)
    print('----------------------------------------')
C:\Users\asus\Desktop\Education_Python\venv\基础语法\chap15
['new_dir']
['a.txt', 'b.txt', 'copy2logo.png', 'copylogo.png', 'demo1.py', 'demo10.py', 'demo11.py', 'demo12.py', 'demo13.py', 'demo14.py', 'demo15.py', 'demo16.py', 'demo17.py', 'demo2.py', 'demo3.py', 'demo4.py', 'demo5.py', 'demo6.py', 'demo7.py', 'demo8.py', 'demo9.py', 'logo.png', 'logp.png', '__init__.py']
----------------------------------------
C:\Users\asus\Desktop\Education_Python\venv\基础语法\chap15\new_dir
['sub']
['1.py', '2.py']
----------------------------------------
C:\Users\asus\Desktop\Education_Python\venv\基础语法\chap15\new_dir\sub
[]
['sub1.py']
----------------------------------------

Process finished with exit code 0

import os
path=os.getcwd()
lst_files=os.walk(path) #遍历指定目录下的所有文件和目录
for dirpath,dirname,filename in lst_files:
    for dir in dirname:
        print(os.path.join(dirpath,dir))
    for file in filename:
        print(os.path.join(dirpath,file))
C:\Users\asus\Desktop\Education_Python\venv\Scripts\python.exe C:/Users/asus/Desktop/Education_Python/venv/基础语法/chap15/demo17.py
C:\Users\asus\Desktop\Education_Python\venv\基础语法\chap15\new_dir
C:\Users\asus\Desktop\Education_Python\venv\基础语法\chap15\a.txt
C:\Users\asus\Desktop\Education_Python\venv\基础语法\chap15\b.txt
C:\Users\asus\Desktop\Education_Python\venv\基础语法\chap15\copy2logo.png
C:\Users\asus\Desktop\Education_Python\venv\基础语法\chap15\copylogo.p
...................
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值