python 文件操作

文件的简单操作:

1.读取文件:

# file 变量名称------>  文件句柄,文件对象  是一个可迭代的内容
file = open('file/a.txt', mode='r')
ret = file.read()  # 将文件中的内容一次性的提取出来 read后可以规定读取字符个数
print(ret)
# 关闭文件
file.close()

2.写文件:

file = open('file/a.txt', mode='w')
ret = file.write('ASD')  # 会将原来文本中的内容覆盖
print(ret)
file.close()

mode='w' 表示写文件

注意:如果文件不存在,会自动创建文件(不会创建目录)

3.读操作:

readline():readline每次读取一行,并且自带换行功能 每一行末尾会读到\n

readlines():一次性以行的形式读取文件的所有内容并返回一个list,需要去遍历读出来

file = open('file/d.txt')
ret = file.readlines()
print(ret)  # ['asdfz1']

循环读取:file句柄是一个可迭代的对象因此,可以循环读取文件中的内容,每次读一行。

file = open('file/b.txt')
    for line in file:
        print(line)

4.写操作:

writelines:file.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。

file = open('file/b.txt', mode='w')
lst = ['aa', 'bb', 'cc']
file.writelines(lst)
file.close()

其他操作:

查看光标位置:

file = open('file/b.txt', mode='r')
ret = file.read(3)
pop = file.tell()
print(pop)  # 3

移动光标位置:

seek移动光标位置
参数:
offset  移动的长度(字节)
whence 相对位置 0从开头(默认),1从当前,2从末尾

with:可以不用关闭文件,会自动关闭文件

with open('file/a.txt', mode='r') as f:
    ret = f.read()
    print(ret)

os模块:

os 模块提供了很多操作目录与文件的功能,主要对文件文件夹增删改查操作

import os

# 重命名
# src 源文件路径,dst 重命名后的文件路径
os.rename('file/text.txt', 'file/text.txt')

# 重命名所有路径
# old 原路径,new 新路径
os.renames('file/text.txt', 'fil2/text2.txt')

# 删除文件
# 如果path不是一个文件,或者文件不存在,将会产生FileNotFoundError异常
os.remove('file/text.txt')

# 新建文件夹
# 如果path所在父母了不存在,或者path目录已存在,都会产生FileNotFoundError或FileExistsError异常
os.mkdir('file/new_dir')

# 删除文件夹
# path必须是空目录,否则产生OSError异常
os.rmdir('file/new_dir')

# 创建多级目录
# 如果path所在的父目录不存在,则会连同父目录一同创建。
# 如果path目录已经存在,当exist_ok值为False,会产生FileExistsError异常,如果exist_ok值为True,则不会产生异常(默认值为False)
os.makedirs('file/new1/new2/new3', exist_ok=True)

# 删除多级目录
os.removedirs('file/new1/new2/new3')

# 获取当前目录
cur_dir = os.getcwd()
print(cur_dir)

# 改变目录
os.chdir('../')
cur_dir = os.getcwd()
print(cur_dir)

# 获取目录列表
dir_list = os.listdir('.')
print(dir_list)

# 执行脚本
os.system("print('hello python')")

在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件、文件夹操作的方法。下面列出:

os.path:

os.path.abspath(path) #返回绝对路径

os.path.basename(path) #返回文件名

os.path.commonprefix(list) #返回多个路径中,所有path共有的最长的路径。

os.path.dirname(path) #返回文件路径

os.path.exists(path)  #路径存在则返回True,路径损坏返回False

os.path.lexists  #路径存在则返回True,路径损坏也返回True

os.path.expanduser(path)  #把path中包含的"~"和"~user"转换成用户目录

os.path.expandvars(path)  #根据环境变量的值替换path中包含的”$name”和”${name}”

os.path.getatime(path)  #返回最后一次进入此path的时间。

os.path.getmtime(path)  #返回在此path下最后一次修改的时间。

os.path.getctime(path)  #返回path的大小

os.path.getsize(path)  #返回文件大小,如果文件不存在就返回错误

os.path.isabs(path)  #判断是否为绝对路径

os.path.isfile(path)  #判断路径是否为文件

os.path.isdir(path)  #判断路径是否为目录

os.path.islink(path)  #判断路径是否为链接

os.path.ismount(path)  #判断路径是否为挂载点()

os.path.join(path1[, path2[, ...]])  #把目录和文件名合成一个路径

os.path.normcase(path)  #转换path的大小写和斜杠

os.path.normpath(path)  #规范path字符串形式

os.path.realpath(path)  #返回path的真实路径

os.path.relpath(path[, start])  #从start开始计算相对路径

os.path.samefile(path1, path2)  #判断目录或文件是否相同

os.path.sameopenfile(fp1, fp2)  #判断fp1和fp2是否指向同一文件

os.path.samestat(stat1, stat2)  #判断stat tuple stat1和stat2是否指向同一个文件

os.path.split(path)  #把路径分割成dirname和basename,返回一个元组

os.path.splitdrive(path)   #一般用在windows下,返回驱动器名和路径组成的元组

os.path.splitext(path)  #分割路径,返回路径名和文件扩展名的元组

os.path.splitunc(path)  #把路径分割为加载点与文件

os.path.walk(path, visit, arg)  #遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数

os.path.supports_unicode_filenames  #设置是否支持unicode路径名

下面给出一种遍历的实现:

rootdir = 'F:\data'
 list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
 for i in range(0,len(list)):
        path = os.path.join(rootdir,list[i])
        if os.path.isfile(path):
               #你想对文件的操作

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值