十、python中的文件操作

来源:互联网 发布:realtekhigh是什么软件 编辑:程序博客网 时间:2024/06/08 00:56

打开文件
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].txtposition = 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)  #注意路径问题