python 文件/文件夹/目录操作

————————————————

A.Python文件、文件夹的移动、复制、删除、重命名

#文件、文件夹的移动、复制、删除、重命名

#导入shutil模块和os模块
import shutil,os

#复制单个文件
shutil.copy("C:\\a\\1.txt","C:\\b")
#复制并重命名新文件
shutil.copy("C:\\a\\2.txt","C:\\b\\121.txt")
#复制整个目录(备份)
shutil.copytree("C:\\a","C:\\b\\new_a")

#删除文件
os.unlink("C:\\b\\1.txt")
os.unlink("C:\\b\\121.txt")
#删除空文件夹
try:
    os.rmdir("C:\\b\\new_a")
except Exception as ex:
    print("错误信息:"+str(ex))#提示:错误信息,目录不是空的
#删除文件夹及内容
shutil.rmtree("C:\\b\\new_a")

#移动文件
shutil.move("C:\\a\\1.txt","C:\\b")
#移动文件夹
shutil.move("C:\\a\\c","C:\\b")

#重命名文件
shutil.move("C:\\a\\2.txt","C:\\a\\new2.txt")
#重命名文件夹
shutil.move("C:\\a\\d","C:\\a\\new_d")

--------------------
转自:http://blog.csdn.net/woshisangsang/article/details/74360612

 

————————————————

B.Python二进制文件的读取与写入

note:当读取音视频、图片等二进制文件时,需要采用二进制的读取方法。

其实二进制读写不限制文件类型和编码格式。

一、读取
with open(file,mode) as f:
pass

file:文件路径
mode:rb 读取二进制文件

strb = f.read()
功能:一次性读取所有内容,以二进制的字符串返回。

strb = f.read(size)
功能:一次性读取size个字节

注意:一般情况下,使用f.read(size)居多

with open("1.jpg","rb") as f:

    #循环读取一张图片,一次性读取1024个字节

    while True:

        strb = f.read(1024)

        if strb == b"":

            break

        print(strb)


二、写入
with open(file,mode) as f:
pass

file:文件路径
mode:wb/ab 读取二进制文件
f.write(strb)

def copyfile(path1,path2):

    with open(path1,"rb") as f1:

        with open(path2,"wb") as f2:

            while True:

                strb = f1.read(1024)

                if strb == b"":

                    break

                f2.write(strb)

————————————————
原文链接:https://blog.csdn.net/hu1258123819/java/article/details/93100425

 

————————————————

C.python list列表的读取和写入

********************************单一列表的读取和写入******************************
#写入文件
list_1 = ['张三','李四','王五']
#1.打开文件
file_handle =open('student.txt',mode='w')
#2.写入数据
fornamein list_1:
    file_handle.write(name) write在写入的时候也只能写入的是字符串,不能是数字
#写入换行符
    file_handle.write('\n')
#3.关闭文件
file_handle.close()


#读取文件
student_list = []
如果事先不知道文件是否存在就先检查一下:
首先引入os模块
import os
判断文件是否存在,如果存在 再做打开文件的操作
如果文件存在返回True 不存在 返回False
rs = os.path.exists('student.txt')
ifrs ==True:
#1.打开文件
    file_handler =open('student.txt',mode='r')  
#2.读取文件内容
    contents = file_handler.readlines()
#3.取出每一个姓名
    fornamein contents:
去除\n
        name = name.strip('\n')
将取出的name添加到大列表中
        student_list.append(name)

********************************嵌套列表的读取和写入*****************************
#写入文件
student_list = [['张三','22','110'],['李四','22','110'],['王五','22','110']]
1.打开文件
file_handle =open('student_v2.txt',mode='w')
2.写入数据
forstudentin student_list:
join() 可以使用某个字符,将列表中的数据拼接为一个字符串
    s =' '.join(student)   用join()写入的时候 不能写入数字 必须是字符串
 写入拼接后的字符串
    file_handle.write(s)    
  写入换行
    file_handle.write('\n')
3.关闭文件
file_handle.close()


#读取文件
student_list = []
如果事先不知道文件是否存在就先检查一下:
首先引入os模块
import os
判断文件是否存在,如果存在 再做打开文件的操作
如果文件存在返回True 不存在 返回False
rs = os.path.exists('student.txt')
ifrs ==True:
#1.打开文件
    file_handler =open('student_v2.txt',mode='r')  
#2.读取文件内容
    contents = file_handler.readlines()
            formsgin contents:
#去除字符串中的\n
    msg = msg.strip('\n')
# split() 通过某个字符分割字符串,返回的是分割完成后的列表
    list_1 = msg.split(' ')
    student_list.append(list_1)
file_handle.close()
————————————————
原文链接:https://blog.csdn.net/au55555/java/article/details/79177428

 

D.将list列表写入文件并读取

写入数据

1.writelines()直接写入

l=["A","B","C","D"]
 
f=open("k.txt","w")
 
f.writelines(l)
f.close()
该方法写入直接写入列表元素

2.str转化为字符串写入

l=["A","B","C","D",1,2,3]
 
f=open("k.txt","w")
 
f.write(str(l))
f.close()
该方法会将整个列表转化为字符串并写入,

3.for循环写入

l=["A","B","C","D"]
 
f=open("k.txt","w")
 
for line in l:
    f.write(line+'\n')
f.close()
此方法的好处是,每个元素都是单词写入,可以在写入时对每个元素进行修改,并且可以换行。但注意列表中的数字是没有办法与你所要添加的字符相加的(int类型不能与str相加)

4.使用.join函数修改列表

l=["A","B","C","D"]
str = '\n'
f=open("k.txt","w")
f.write(str.join(l))
f.close()
使用join可以很好的添加你想要添加的字符以及数字,非常的灵活,推荐使用,如果列表中存在数值类型,可以先用str转换之后再进行写入

读取数据
1.read   2.readlines

如果使用read来读取,则返回为字符串类型,并且列表只能为字符串类型(str),不能存在数值类型,如果有数字则会报错

readline与read相同  ,

如果使用readlines来读取,则默认返回为列表类型,并且列表的一个元素为一行元素

这时便可以对数据进行很好的处理

读取列表中的数字,提供一个简单的方法

for line in l:
    if "0" in next or "1" in next:
 
————————————————
原文链接:https://blog.csdn.net/as480133937/java/article/details/93137001

 

————————————————

E.Python语言创建目录、删除目录和修改目录名称的操作

在电脑中创建一个新的目录,需要指定目录路径,目录路径是指从磁盘盘符到新目录所在位置的路径。例如,如果要在D盘盘符下创建一个名称为“document”的目录,则目录路径为“d:\ document”,其中字母“d”是目录所在的盘符号,“document”是目录名称,“\”为分隔各级目录的符号,需要注意的是分隔符号在Windows操作系统下是“\”,在Linux操作系统下是“/”。

Python操作目录的方法包含在OS模块中,在代码中需要导入OS模块。OS模块有关目录的方法见下表。

表格1 Python创建目录方法表

df

 

例1:使用mkdir创建目录

例1使用mkdir方法创建一个新的目录,目录路径为“d:/pubdocument”,该方法执行完成后,将在d盘盘符下创建pubdocument目录,如果d盘不存在或pubdocument目录已存在,该方法执行失败

 

在例1中使用mkdir方法创建的目录路径为绝对路径,mkdir方法也可以使用相对路径来创建目录。绝对路径是从磁盘盘符开始的路径,相对路径是从程序当前工作目录开始的路径。例如当前程序的工作目录是“d:/pub”,创建的目录路径是“docment”,则实际创建的目录路径为“d:/pub/ docment”。

例2:使用相对路径创建目录

在例2中使用OS模块的chdir方法将程序的工作目录设置为“d:/pub”,待创建的目录路径为“document”,当程序执行完毕,程序会在d盘pub目录下创建document目录。

 

例1和例2使用的mkdir方法只能创建单个目录,当目录路径存在多级目录时,如果前面的多级目录不存在,则会创建失败。使用makedirs方法可以创建多级目录。例如需创建的目录路径为“d:/pub/document”,如果pub目录不存在,mkdir会创建目录失败,而makedirs方法会先创建pub目录,然后再创建document目录。

例3:使用makedirs方法创建多级目录

例3使用makedirs方法创建多级目录,创建的目录路径为“d:/pub/document”,makedirs方法执行之前pub目录和document都不存在。

 

当目录不再需要或用户删除目录时,我们可以使用rmdir方法来删除指定的目录,删除目录时需要慎重,因为该目录下的所有文件都会被删除。

例4:使用rmdir方法删除目录

例4使用rmdir方法删除指定的目录,删除的目录路径为“d:/pub/document”,在执行rmdir方法删除document目录之前,需要确保document目录是存在的。

 

当用户需要修改已有目录的名称时,可以使用rename方法来修改已有的目录名称,rename方法要求传入两个参数,第一个参数是需要修改目录名称的目录路径,第二个参数是修改后的目录路径。

例5:使用rename方法修改目录名称

例5使用rename方法修改document目录的名称,名称修改为doc。其中src是需要修改的目录路径,dst是修改后的目录路径。

 

原文链接:https://baijiahao.baidu.com/s?id=1628343742745107179&wfr=spider&for=pc

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值