十、python中的文件操作

打开文件
f = open(“test.py”,”w or r”)
r w a(追加)
rb wb ab(二进制) 例如图片 视频
r+ w+ a+ (可读可写)
rb+ wb+ ab+ 操作图片 音频
关闭文件
f.close()
读文件 f.read() 读取全部文件内容
读取一定字节的内容
f.read(数字)
写文件内容
f.write()
readline() 一行一行读取
readlines() 将一行一行读取的结果用列表存起来

例子:制作文件的备份
'''应用1:制作文件的备份
'''
#1、获取需要复制的文件名:
old_file_name = input("please input the file name you need to copy:")

#2、打开需要复制的文件
old_fid = open(old_file_name,'r')
#3、新建一个文件
#new_file_name = "[copy]"+ old_file_name
#new_fid = open("new_file.txt",'w')
#test.txt------------>test[copy].txt
position = old_file_name.rfind('.')
new_file_name = old_file_name[:position] + "[copy]" + old_file_name[position:]
new_fid = open(new_file_name,'w')
#4、从旧文件中读取内容到新文件中
#content = old_fid.read()   #直接读取所有内容到内存中会造成内存容量不足
while True:
    content = old_fid.read(1024)    #每一次读取一定量的内容

    if len(content) == 0:
        break

    new_fid.write(content)
#5、关闭两个文件
old_fid.close()
new_fid.close()
问题:如果一个文件很大,比如5G,试想应该怎么样才能把文件的数据读取到内存然后进行处理呢?
当读取大文件时候,禁止使用read()一次性读取所有内容,而应该是把内容分次数进行存取,通过使用循环来进行实现
定位读写

定位读写(不从开始,从某个特定位置开始进行读写)
seek(偏移量,指针位置) 指针位置值有三种;0(文件开头) 1(当前位置) 2(文件末尾)

f = open("test.txt",'r')
f.seek(2,0) #从文件开头处偏移两个位置处进行操作
print(f.readline())
print(f.read())
print(f.tell())  #获取指针位置
f.seek(0,0)  #将指针重新指向文件的开头处
print(f.tell())
print(f.read())
文件以及文件夹操作

import os
重命名文件:os.rename()
删除文件:os.remove()
创建文件夹:os.mkdir()
删除文件夹:os.rmdir()
返回当前操作的绝对路径:os.getcwd()
改变操作路径:os.chdir()
获取目录列表:os.listdir(“./”)

批量重命名例子
import os
#1、获取要重命名的文件夹
folder_name = input("please the folder name that you need to rename:")
#2、获取指定的文件夹里面的所有文件名字
file_names = os.listdir(folder_name) #返回一个列表
#os.chdir(folder_name)
#3、重命名
for name in file_names:
    print(name)
    old_file_name = folder_name + '/' + name
    new_file_name = folder_name + '/' + 'JD-' + name
    os.rename(old_file_name,new_file_name)  #注意路径问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值