python-文件操作


#文件的作用就是计算机存储数据
#文件打开分为读、写、追加模式,此三种模式分别再分为 文本模式 和 二进制模式
'''
1、访问模式----------------------------------------------------------------------------
r:只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
w:只用于写入。若文件已存在,则覆盖;不存在,则新建
a:打开一个文件用于追加。若已存在,指针放在文件的结尾,即新内容会被写入到已有内容之后。若不存在,则新建文件写入
rb:以二进制格式打开文件用于只读。文件指针放在文件的开头。默认模式
wb:以二进制格式打开文件只用于写入。若文件已存在,则覆盖;不存在,则新建
ab:以二进制格式打开文件用于追加。若已存在,指针放在文件的结尾,即新内容会被写入到已有内容之后。若不存在,则新建文件写入

2、文件打开模式:r、w、a为文本模式;rb、wb、ab为二进制模式------------------------------------
文本模式VS二进制模式
以换行符为例:mac系统中,换行时自动添加\r;  windows为\r\n;   linux为:\n
             在编程程序中,换行符统一默认\n
若以【文本模式】打开文件,在程序转向操作系统/操作系统文件转入程序时,会进行换行符的转换
若使用二进制模式打开文件,不会进行换行符的转换

3、文件本质上都是以二进制的方式存储在磁盘上的

4、使用场景:
某些数据本身就需要换行,例如文字、字母这类普通文本,需要使用文本模式
图片这类则可以使用二进制模式
'''


'''1、文件的打开和关闭-打开后建议加上关闭代码,防止空间过渡占用---------------------------------------------'''
#python中,使用open函数,可以打开已经存在的文件或创建一个新文件;使用close方法关闭一个文件
#新建文件:a.txt.空文件
#1、使用文本模式写入文件
fa=open('a.txt','w') #a文件已存在,直接以写入文本模式打开
fa_content='hello world!第一次\n啊' #若在后面加上\n,在txt文件中会换行;因为为文本模式,会把程序的\n转换为本系统\r\n
fa.write(fa_content) #将上述变量的内容写入a文件中。
fa.close()#使用完关闭a文件,可以为系统腾出空间

#2、使用文本模式读取文件
fa=open('a.txt','r')
#read方法默认读取文件中所有数据,可以给参数,设置读取几个字符;readlines一次读取一行数据;
 #未设置参数,读取所有数据
print(fa.read()) #结果为:hello world!第一次\n啊
fa.close()
# fb=open('b.txt','w')#b文件不存在,会新建一个b.txt文件

'''2、文件的操作----------------------------------------------------------'''
#r只读:f.read/readline;  w写入:f.write(写入新数据或覆盖原数据)
#a追加:f.write,在原数据后面追加
fa=open('a.txt','a') #每run一次,就会追加一次
fa_content=('\nnice day')
fa.write(fa_content) #结果为:hello world!第一次 \n 啊\n nice day
fa.close()

'''3、文件读写函数----------------------------------------------------------'''
#写文件操作:write一次写一行;
        # writelines 一次写多行:参数是一个列表,每个元素都是一行数据,可以用\n换行符分开显示
#writelines:可以直接给一个列表,会把列表的所有元素写入文件中
fa=open('a.txt','w')
fa.writelines(['aaa\n','bb\n','c\n'])
fa.close()

#读文件操作:read(参数)全读或指定读,不指定参数,读取所有数据。指定参数,例如read(5):一次读5个字符
            # readline 一次读一行,指针指向下一行:若重复写入,会继续读下一行,不会重复读取同一行
            # readlines 一次读所有行:
#readlines:
fa=open('a.txt','r')
fa.readlines()
fa.close()

'''4、文件拷贝(二进制模式比较合适)----------------------------------------------------------'''
#文件的拷贝最好保证原封不动地进行拷贝,不涉及任何转换。所以使用二进制模式较为合适
#1、获得要拷贝的文件名
old_file=input('请输入要复制的文件名:')
#2、打开老文件,创建新文件名并打开
old=open(old_file,'rb')
new_file='[备份]'+old_file
new=open(new_file,'wb')
#3、将要拷贝的文件内容写到新文件中
new_content=new.write(old.read())
#5、关闭新老文件
old.close()
new.close()

#输入a.txt
#结果为:成功将a.txt的内容复制到新文件[备份]a.txt中

'''4、文件重命名/删除/创建和删除目录----------------------------------------------------------'''
#OS模块中的rename()可以完成对文件的重命名
import os
os.rename('a.txt','new_a.txt') #包含文件类型的扩展名

import os
os.remove('文件名')

import os
#创建目录/文件夹
os.mkdir('目录名或所在路径')
#删除目录/文件夹
os.rmdir('目录名或所在路径')

#路径问题:
# 如果只写文件名/目录名,默认只在当前目录下找文件/目录,若找不到,报错
#若想删除指定文件,需写出文件所在完整路径。根据路径查找该文件

#获得指定目录下的文件列表
import os
file_list=os.listdir()
print(file_list) #返回当前项目文件中的所有文件名,以列表形式

#获得和设置工作目录:cwd:current working directory
import os
cwd=os.getcwd() #获得当前的工作目录
print(cwd) #返回:D:\First项目

'''上述的其他的删除、增加文件或者目录,若不指定路径,都是默认在当前目录下去找的'''
#若想改变默认的工作目录,将后面的操作返回到指定工作目录下,使用chdir
os.chdir('目标工作目录') #若设置到桌面,会将代码下方的操作运行到桌面中
os.mkdir('新建的文件夹名')#将新文件夹增加到桌面上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值