python——文件操作

需要导入OS模块 

import os


1.路径 

   1.1构建通用路径 

   WIndows Linux OS系统上路径分隔符不一样,所以最好统一  

   os.path.join('usr','bin','temp')

   1.2当前目录 

   获取当前目录路径 

   os.getcwd() 

   改变当前路径 

   os.chdir(path)


   1.3绝对路径与相对路径 

    绝对路径:总是从根文件夹开始 

       .\ 代表当前路径 

   相对路径:相对于程序的当前工作目录 

      ..\ 代表父目录路径


  1.4处理绝对路径和相对路径

        os.path.abspath(path) :将相对路径转为绝对路径 

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

        os.path.relpath(path,start) :返回从start路径到path的相对路径的字符串。没 start使用当前

        os.path.basename(filepath) :返回文件路径最后的文件名

        os.path.dirname(filepath) :返回文件路径的文件名 os.path.split(filename): 分别返回文件路径名和文件名

import os
path=os.path.join("C:\\","Users","lenovo")
print(path)
print(os.getcwd())
#os.chdir(path)  #cd ..
print(os.getcwd())

print(os.path.abspath("..\\"))
print(os.path.isabs(os.getcwd()))
print(os.path.relpath("C:\\MinGW",".\\"))
#返回从start路径到path的相对路径的字符串
print(os.path.basename(os.getcwd()+"\\test4.py"))
#从一个文件的全路径返回一个文件的名称
print(os.path.dirname(os.getcwd()+"\\test4.py"))
# 返回文件路径的文件名
print(os.path.split(os.getcwd()+"\\test4.py"))
# 返回的是元组: 文件的全路径  文件全称,包括全路径


  1.5查看路径有效性

      os.path.exists(path): 检查路径是否存在

      os.path.isfile(path):检查文件是否存在

      os.path.isdir(path) :检查文件夹是否存在


2.文件夹与文件 

    2.1创建文件夹 

      os.makedirs(path)


   2.2文件的打开与关闭 

     基本操作流程:

       打开文件,或者新建立一个文件

      读/写数据

      关闭文件

    打开文件: 

       使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 

        open(文件名,访问模式)

        比如: 

         f = open('test.txt', 'w') 

                                                                访问模式列表


 

关闭文件:

调用close()函数 

f.close()

.2.3文件读写 

    write函数:向文件写入数据 

     f = open('test.txt', 'w')

     f.write('hello world, i am here!')

     f.close() 

    注意:如果文件不存在则创建,如果存在则先清空,然后写入数据

    read(num)函数:以从文件中读取数据,num表示要从文件中读取的数据的长度(单位 是字节),

    如果没有传入num,那么就表示读取文件中所有的数据

     f = open('test.txt', 'r')

     content = f.read(5)

     print(content)

     print("-"*30) content = f.read()

     print(content)

     f.close() 

     注意:
      如果open仅仅读取一个文件,那么可以不用写打开的模式,即只写  open('test.txt') 如果使用读了多次,那么后面读取的数据是从上次

     读完后的位置开始的 读取的文件如果包含中文时,最好open('test.txt',encoding='utf-8')
     readlines()函数:readlines可以按照行的方式把整个文件中的内容进行一次性读取,并

     且返回的是一个列表,其中每一 行的数据为一个元素

      f=open('test.txt',encoding='utf-8')

      lines=f.readlines()

      for line in lines:

      print(line)

      tell()函数:获取当前读写的位置  

     seek(offset,from)函数:定位到某个位置

               offset:偏移量

               from:方向

                      0:表示文件开头

                     1:表示当前位置

                     2:表示文件末尾


2.4文件和文件夹的复制    

需导入shutil模块

shutil.copy(原路径,目标路径)

shutil.copytree(原路径,目标路径)  

注意:
          copy(文件路径,文件夹路径):将文件复制到文件夹

          copy(文件路径,文件路径):复制文件并重命名os.rename()

          copytree复制文件夹所有内容!


#hehe.txt->haha.txt

oldFile=open("hehe.txt","r")
newFile-open("haha.txt","w")
info=oldFile.read()
newFile.write(info)
oldFile.close()
newFile.close()


f=open("Listen.mp3","rb")
info=f.read()
print(info)
newf=open("Listen_copy.mp3","wb")
newf.write(info)
f.close()
newf.close()



# python下载软件 pip install shutil

2.5文件和文件夹的移动与改名

shutil.move(目标,目的)

注意:
         目标为文件,目的为已知目录,则移动文件

         目标为文件,目的为路径不存在的目录,则为文件无后缀名

         目标为文件,目的为文件,则移动文件并改名

         目标为文件,目的为路径不存在的文件 报错


2.6文件和文件夹的删除

        os.unlink(path) 删除文件

        os.remove(path)

        os.rmdir(path) 删除文件夹,必须为空

        shutil.rmtree(path) 删除文件夹,全删

安全删除:

需导入send2trash模块

send2trash.send2trash(aim)

删除时入回收站,但不恢复

import os
import shuttil
ipmort send2trash
import shelve
#os.unlink("b")
#os.remove("lala.txt")
#os.rmdir("abc") #删除文件夹,该文件夹必须为空
#shutil.rmtree("a")  #a为多文件
#rm -rf
#send2trash.send2trash("cba")
#推荐删除 安全
shel=shelve.open("config.info")
shel["name"]="张三"
shel.close()
shel=shelve.open("config.info")
nam=shel["name"]
print(name)
shel.close()

另:将二进制数据(变量)持久化保存

写入操作 

      导入shelve库

     shelf=shelve.open('文件') 打开文件,没有则新建

     shelf[key]=value 以键值对方式保存 类似于字典

     shelf.close() 关闭

读取操作

     导入shelve库

     shelf=shelve.open('文件') 打开文件,没有则新建

     shelf[key]读取数据

    shelf.close() 关闭

    同样拥有keys(),values()方法获取所有键和值

    

 

 

    
 

       

 


 

    

   

 

 

  

 

 

       

     
 

  

    



   


 

   

  

     

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值