今天和昨天学习了文件操作,然后把编程环境换成了pycharm,关于文件操作的内容和相关笔记放在了下文
1.文件的基本操作
'''
文件说明:
什么是文件?
数据持久化存储在磁盘上的一种形式,mp3,mp4,html,py,png,jpg
文件一旦open,必须要关闭(close)
open 函数
open(文件路径,文件操作权限),文件操作权限,不写默认为读
write 写入数据
关于文件路径:
相对路径:相对于当前文件来说 file/1.txt
../:表示上一级目录
./:表示当前目录
../06_文件操作/file/1.txt(如果当前在05_函数文件夹)
绝对路径:带盘符的路径
'''
#打开文件,并赋予写的权限
file=open("file/1.txt","w+")
#写入数据
file.write("捡起大咋尊")
#关闭文件
file.close()
2.文件的读取操作
'''
file.read方法:
用于文件读取,默认从左往右按个读取
如果该方法没有指定读取内容的长度,默认一次性读完'''
file=open("python基础\\06文件操作\\file\\1.txt")
#读取文件
print(file.read())
#关闭文件
file.close()
分割成列表:按行分割 splitlines() 或按空格分割 split()。
• 遍历每一行:用 for 循环逐行操作。
• 统计内容长度:用 len()。
#示例
with open("2MY_SQL/密码设置与安全性分析.txt", 'r', encoding="GBK") as plaintext:
plaintext_list = plaintext.read()
print(plaintext_list.splitlines()) # 分割为行,返回列表
print(len(plaintext_list)) # 打印字符总数
3.文件复制
'''
文件说明:用Python实现文件复制
1.打开源文件的,权限为读 r
2.开始读取源文件内容
3.创建新文件
4.将读取到的内容写入新文件
5.关闭新老文件
'''
#获取老文件名称
old_file_name=input("请输入你想要复制的文件路径:")
#打开文件
old_file=open(old_file_name,"r")
#开始读取文件
content=old_file.read()
#找到文件后缀名.的下标
index=old_file_name.rfind(".")
#字符串切片方式提取数据
new_file_name=old_file_name[:index]+"[副本]"+old_file_name[index:]
#创建新文件,写入权限
new_file=open(new_file_name,"w")
#写入数据
new_file.write(content)
#关闭新老文件
new_file.close()
old_file.close()
4.文件按行处理
'''
文件处理:
'''
#打卡文件,赋予权限
file=open("file/1.txt",'r')
#(file.read())
#一次读取一行
print(file.readline())
print(file.readline())
print(file.readline())
file.close()
new_file=open("file/1[副本][副本].txt",'w')
#一次写一行
new_file.writelines("lalalala\nlalala")
new_file.close()
5.with_open_as用法
'''
with open as方法不需要手动关闭文件,让你的with oprn as这个语句块结束后,程序自动帮你关闭
flush 方法:刷新缓存
'''
with open("file/1.txt","r")as new_file:
content=new_file.read()
#强制刷新缓存,保障数据全部写出,一般情况下,文件关闭后程序会自动刷新到磁盘中,使用flush方法,在文件关闭前确保数据成功写出
new_file.flush()
print(content)
6.定位读取
'''
文件说明;定位读取
seek(偏移量,方向)
seek(2,0):相对于文件开头偏移2,0表示从文件开头开始
1表示从当前游标位置开始
2.表示从文件末尾开始
'''
with open("file/2.txt", "r")as new_file:
new_file.seek(2,0)
#当前游标位置
print(new_file.tell())
print(new_file.read(1))#print(new_file.read())游标
print(new_file.tell())
print(new_file.seek(0,0))
print(new_file.read(1))
print(new_file.read(1))
print(new_file.read(1))
7.文件编码处理
'''
文件说明:
文件编码处理
什么是编码?
字典 页码+ 第几个 78-9 67-8 56-3
'''
with open("file/1.txt","r",encoding="gbk")as f:
f.read()
8.os模块
'''
文件操作:
os 系统操作模块
python标准库(自带)
'''
import os
#显示当前文件的路径
print(os.getcwd())
#显示当前目录下的所有文件名称,并存储到列表中
print(os.listdir())
for file in os.listdir():
print(file)
#改变文件的工作路径
#os.chdir()
#创建文件夹
#os.mkdir("file/test")
#删除文件夹
#os.rmdir("file/test")
#删除文件
#os.remove("file/1.txt")
#重命名文件
#os.rename("file/2.txt","老王.txt")#相对路径,只写老王会存放在当前路径中
#运行系统层面的指令
#os.system("linux指令")
#拼接两个路径
path=os.path.join("http://www.baidu.com","?wd=老王")
print(path)
#文件目录与父级目录
par_path=os.path.dirname("python基础/06文件操作/file/2.txt")
print(par_path)
#文件绝对路径(后面跟文件名
print(os.path.abspath("2.txt"))
#文件相对路径(后面跟文件名
print(os.path.realpath("2.txt"))
size=os.path.getsize("file/2.txt")
print(size)
#判断路径是否存在
bool=os.path.exists("file")
print(bool)
#判断是否是文件夹
os.path.isdir()
#判断是否是文件
os.path.isfile()
#判断是否是绝对路径
os.path.isabs()
#
link=os.path.islink("C:/Users/无名f/Desktop/PROJECTS/python基础/06文件操作/file/2.txt")
print(link)
#创建时间
os.path.getctime()
#访问时间
os.path.getatime()
#修改时间
os.path.getmtime()
4446






