百木园-与人分享,
就是让自己快乐。

Python中open()文件操作/OS目录操作

  • File对象测试数据的读写与操作

#def open(file, mode=\'r\', buffering=None, encoding=None, errors=None, newline=None, closefd=True): # known special case of open
#file: 操作的文件
#mode:打开这个文件的模式
    \'r\'       open for reading (default)读取 - 默认值。打开文件进行读取,如果文件不存在则报错。
    \'w\'      open for writing, truncating the file first写入 - 打开文件进行写入,如果文件不存在则创建该文件。
    \'x\'       create a new file and open it for writing创建 - 创建指定的文件,如果文件存在则返回错误。
    \'a\'       open for writing, appending to the end of the file if it exists追加 - 打开供追加的文件,如果不存在则创建该文件。
    \'b\'       binary mode二进制模式
    \'t\'       text mode (default)文本 - 默认值。文本模式。
    \'+\'       open a disk file for updating (reading and writing)打开磁盘文件进行更新(读写)
    \'U\'       universal newline mode (deprecated)通用换行模式(已弃用)
#buffering:可选参数,用于指定对文件做读写操作时,是否使用缓冲区
#encoding:手动设定打开文件时所使用的编码格式,不同平台的 ecoding 参数值也不同,以 Windows 为例,其默认为 cp936(实际上就是 GBK 编码)

1.读取

file = open(\"test0925.py\")#默认为r
res = file.read()
print(res)
#def open(file, mode=\'r\', buffering=None, encoding=None, errors=None, newline=None, closefd=True): # known special case of open
#file: 操作的文件
#mode:打开这个文件的模式
file = open(\"test0925.py\",\"r\")#默认为r
res = file.read()
print(res)

2.写入

#写入
file = open(\"test0925.py\",\"w\",encoding=\"utf8\")#w写入,覆盖源文档的内容,乱码时添加encoding=\"utf8\"
file.write(\"测试\")

3.追加

#追加
file = open(\"test0925.py\",\"a\",encoding=\"utf8\")#w写入,覆盖源文档的内容,乱码时添加encoding=\"utf8\"
file.write(\"aaaa\")

4.按行读取

#按行读取
file = open(\"test0925.py\",\"r\",encoding=\"utf8\")
read = file.readline()#读取一行
print(read)

5.读取多行

#全部读取
file = open(\"test0925.py\",\"r\",encoding=\"utf8\")
reads = file.readlines()#读取所有行
print(reads)
  • OS操作文件夹/获取路径

1.文文件夹(目录)

1.1.绝对路径/相对路径

#相对路径/绝对路径
第一种(绝对路径表示法):C:\\FIle\\file two
第二种(相对路径表示法):FIle two

1.2.新建目录

import os
#新建文件夹
os.mkdir(\"Eclipse\")#

1.3.跨级新建目录

import os
#跨级新建目录
os.mkdir(\"Eclipse/US\")#跨级必须确保层级目录存在,相对路径

1.4.绝对路径新建目录

import os
#绝对路径新建目录
os.mkdir(\"D:\\\\test_mkdir\")#绝对路径

 1.5.删除目录

#目录不为空时删除失败

import os
#删除文件夹
os.remove(\"demo.py\")
import os
#删除
os.rmdir(\"m1/m2\")

2.获取路径

2.1.获取当前工作目录

#获取当前工作目录
import os
path = os.getcwd()
print(path)#D:\\File\\python_project\\demo\\api

2.2.获取当前文件所在的绝对路径(具体到模块名)

#获取当前文件所在的绝对路径
import os
realpath = os.path.realpath(__file__)# __file__表示当前文件本身
print(realpath)#D:\\File\\python_project\\demo\\api\\demo02.py

2.3.拼接路径 +

#拼接路径
import os
new_path = os.getcwd()+\"\\\\m1\\\\m2\" # \\\\两个反斜杠可以,\\一个反斜杠可以,/一个斜杠也可以
print(new_path) #打印新的绝对路径

 2.4.拼接路径 join

#路径拼接
import os
path = os.getcwd().join(\"test02\") #拼接
print(path)
file = os.path.join(\"C/itt\",\"ABC\")#☆ ☆
print(file) #C/itt\\ABC

2.5.判断是否为文件

#判断文件
import os
path = os.path.isfile(__file__)#判断是否为文件
print(path)#True

path2 = os.path.isfile(os.getcwd())#判断当前路径是否为文件
print(path2)#False

2.6.判断是否为文件夹

#判断文件夹
import os
path = os.path.isdir(__file__)#判断当前绝对路径是否为文件夹
print(path)#False

path2 = os.path.isdir(os.getcwd())
print(path2)#True

2.7.判断路径是否存在

#判断路径是否存在
import os
bool = os.path.exists(\"D://download\")
print(bool) #True

2.8.打印指定路径下所有文件和文件夹

#罗列当前路径下所有的文件文件夹
import os
list_path = os.listdir(\"C:\\system_software\\PyCharm 2019.1.3\")
print(list_path)#[\'bin\', \'build.txt\', \'debug-eggs\', \'help\', \'helpers\', \'helpers-pro\', \'index\', \'jre64\', \'lib\', \'license\', \'plugins\', \'product-info.json\', \'skeletons\']
2.9.写一个函数,判断是否为目录,如果时目录罗列出所有的文件文件夹
#写一个函数,判断是否为目录,如果时目录罗列出所有的文件文件夹
import os
def path_list(path):
    if os.path.exists(path) and os.path.isdir(path):#判断是否为文件夹,是否存在
        for item in (os.listdir(path)):#便利列表
            new_path = path + \"\\\\\" + item   #使用join拼接: new_path = os.path.join(path,item)                                      
            if os.path.isdir(new_path):#是否为文件夹
                print(\"D:{0}\".format(new_path))#文件夹
            elif os.path.isfile(new_path):#是否为文件
                print(\"F:{0}\".format(new_path))#文件
            else:
                print(\"错误路径:{0}\".format(new_path))
path_list(\"C:\\system_software\\PyCharm 2019.1.3\")

输出:
    D:C:\\system_software\\PyCharm 2019.1.3\\bin
    F:C:\\system_software\\PyCharm 2019.1.3\\build.txt
    D:C:\\system_software\\PyCharm 2019.1.3\\debug-eggs
    D:C:\\system_software\\PyCharm 2019.1.3\\help
    D:C:\\system_software\\PyCharm 2019.1.3\\helpers
    D:C:\\system_software\\PyCharm 2019.1.3\\helpers-pro
    D:C:\\system_software\\PyCharm 2019.1.3\\index
    D:C:\\system_software\\PyCharm 2019.1.3\\jre64
    D:C:\\system_software\\PyCharm 2019.1.3\\lib
    D:C:\\system_software\\PyCharm 2019.1.3\\license
    D:C:\\system_software\\PyCharm 2019.1.3\\plugins
    F:C:\\system_software\\PyCharm 2019.1.3\\product-info.json
    D:C:\\system_software\\PyCharm 2019.1.3\\skeletons

 2.9.1.拓展(递归)

通过递归 获取指定路径下所有的文件文件夹,包括文件夹下的所有文件和文件夹
#通过递归 获取指定路径下所有的文件文件夹,包括文件夹下的所有文件和文件夹
import os
def aqual_path(path):
    # os.path.exists(path)#判断是否为路径
    # os.path.isdir(path)#是否为一个文件夹
    if os.path.exists(path) and os.path.isdir(path):
        #若果是一个有效的文件夹,则获取当前路径下所有文件/文件夹
        listss = os.listdir(path)
        for item in listss:
            new_path = os.path.join(path,item)
            if os.path.isdir(new_path):
                print(\"D:{0}\".format(new_path))
                aqual_path(new_path)#递归,调用本函数
            elif os.path.isfile(new_path):
                print(\"F:{0}\".format(new_path))
            else:
                print(\"无效:{0}\".format(new_path))

aqual_path(\"E:\\娱乐\\电影集\\China\")

输出:
D:E:\\娱乐\\电影集\\China\\林超贤导演
F:E:\\娱乐\\电影集\\China\\林超贤导演\\红&海&行动.mp4
F:E:\\娱乐\\电影集\\China\\真三国无shuang.2021.HD.1080P.国粤双语中字.mkv
F:E:\\娱乐\\电影集\\China\\误杀2.2021.HD.1080P.国语中英双字.mkv
F:E:\\娱乐\\电影集\\China\\送你一朵小红hua.mkv
D:E:\\娱乐\\电影集\\China\\郭敬明导演
F:E:\\娱乐\\电影集\\China\\郭敬明导演\\爵1迹1.mp4
F:E:\\娱乐\\电影集\\China\\郭敬明导演\\爵1迹2:冷血狂宴.mp4
F:E:\\娱乐\\电影集\\China\\长津湖.2021.BD.1080P.国语中字.mkv

 


来源:https://www.cnblogs.com/QAbujiaban/p/16989301.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python中open()文件操作/OS目录操作

相关推荐

  • 暂无文章