Python基础总结之第九天开始【python之OS模块对目录的操作、以及操作文件】(新手可相互督促)

年薪20万的梦想。。。
        python对文件、目录能做什么?或者说我们需要python替我们做什么?最经常的操作就是对文件的:
打开、关闭、读取、写入、修改、保存等等对目录的操作,无非就是:创建目录、删除目录、更改目录名字等等。
我们先认识一下OS模块,os模块以及子模块path中包含了获取系统信息、以及对系统进行设置的函数。提供了Python
系统和操作系统进行交互的一个接口。
我们怎么使用os模块中的函数呢?看下代码:

1 import os     #导入os模块

我们输入这样一行代码,就代表将OS模块导入在,我们的python文件中,这样我们就可以,使用os模块下面的各个函数了!是不是很简单。

接下来我们认识第一个函数:

getcwd()   该函数用于获取当前工作目录。

1 import os     #导入os模块
2 print(‘演示获取当前目录:‘,os.getcwd())    #使用格式:模块.函数()   记住中间有个点os.getcwd()

我们看到了当前工作目录,那么我们用第二个函数,可以看到当前目录下包含了那些文件或目录。

listdir()    用于看到当前目录下包含了那些文件或目录,并存放在一个列表中。

1 import os     #导入os模块
2 3 print(os.listdir(os.getcwd()))   #使用格式:os.listdir()   用于列出当前目录包含的文件名和目录名,存放在列表中。

接下来我们看到自己想要找到目录后,我们切换目录。

1 os.chdir(‘C:/Users/92938/PycharmProjects‘)    #改变目录,指定一个目录的绝对路径。
2 print(‘演示获取当前目录:‘,os.getcwd())          #显示改变目录后的路径位置
3 print(os.listdir(os.getcwd()))                #显示改变目录后的目录中包含什么文件或目录

接下来我们再看看怎么创建目录:

mkdir()                创建目录,如果在创建目录的时候,创建的目录名与现有的目录名重名,会报异常。

makedirs()           创建目录,与前者区别在于,它可以创建多层级的目录。

我们先创建下目录看下代码的实现:

1 import os     #导入os模块
2 os.chdir(r‘C:\Program Files\tools‘)    #改变目录,指定一个目录的绝对路径。   前面的r是转义字符,前面的总结有讲过它的使用方法。
3 print(‘演示获取当前目录:‘,os.getcwd())    #显示改变目录后的路径位置
4 print(os.listdir(os.getcwd()))             #显示改变目录后的目录中包含什么文件或目录
5
6 os.mkdir(‘tt‘)    #创建一个文件夹
7 print(os.listdir(os.getcwd()))             #查看创建的tt文件夹

mkdir()  创建的文件夹是当前目录的文件夹,不能同时创建多层。

接下来看第二种创建方式:多层创建目录:

1 import os     #导入os模块
2 os.chdir(r‘C:\Program Files\tools‘)        #改变目录,指定一个目录的绝对路径。  前面的r是转义字符,前面的总结有讲过它的使用方法。
3 print(‘演示获取当前目录:‘,os.getcwd())    #显示改变目录后的路径位置
4 print(os.listdir(os.getcwd()))             #显示改变目录后的目录中包含什么文件或目录
5
6 os.makedirs(‘aa/bb/cc‘)
7 print(os.listdir(os.getcwd()))             #查看创建的aa文件夹
8 os.chdir(r‘C:\Program Files\tools\aa‘)     #查看aa文件夹中是不是有bb文件夹

创建了这么多垃圾文件,我们看看怎么删除文件夹吧:

rmdir()  删除指定的目录(文件夹),如果目录里面有其他目录或文件不是空目录,会报错。

removedirs()  删除指定的目录,可以指定多级  aa/bb/cc   这样会同时删除  aa/bb/cc三个目录。

话不多说看代码:

1 import os                #导入os模块
2 os.chdir(r‘C:\Program Files\tools‘)        #改变目录,指定一个目录的绝对路径。  前面的r是转义字符,前面的总结有讲过它的使用方法。
3 print(‘演示获取当前目录:‘,os.getcwd())       #显示改变目录后的路径位置
4 print(os.listdir(os.getcwd()))             #显示改变目录后的目录中包含什么文件或目录
5
6 os.rmdir(‘tt‘)
7 print(os.listdir(os.getcwd()))             #查看当前目录下的tt文件夹是不是被删除

rmdir()  不能进行多层级的同时删除目录,如果目录不为空,删除会报错。

再看下多层级同时删除,切记,目录里面需要为空,没有任何文件哦,不然会报错的~~~

1 import os
2 os.chdir(r‘C:\Program Files\tools‘)                        #切换到指定的文件目录
3 print(‘查看是不是我们切换的目录地址:‘,os.getcwd())        #查看是不是我们切换的目录
4 print(os.listdir(os.getcwd()))                             #这俩函数组合使用,查看当期目录下面有哪些目录或文件
5
6 os.removedirs(r‘aa\bb\cc‘)                            #多层级删除目录,aa\bb\cc三个空目录同时删除
7 print(os.listdir(os.getcwd()))                     #查看删除后还有aa文件目录吗?

最后我们看下怎给当前目录更改名字?

目录的名字更改:

rename()    括号中需要两个参数:  旧文件名,新文件名     记住中间是英文逗号。

renames()   同样的,这个函数可以同时修改多层级目录的名字。比如:     aa\bb\cc   改为  dd\ee\ff

看代码吧:

1 import os                                   #导入os模块
2 os.chdir(r‘C:\Program Files\tools‘)         #切换到指定的路径目录
3 print(os.listdir(os.getcwd()))              #查看当前切换的目录下面有哪些目录
4 os.mkdir(‘tt‘)
5 print(os.listdir(os.getcwd()))              #查看当前目录有没有创建成功tt目录
6 os.rename(‘tt‘,‘gg‘)
7 print(os.listdir(os.getcwd()))              #查看当前tt目录是不是变成了gg目录

接下来看多层级同时更改目录名称

1 import os                                   #导入os模块
2 os.chdir(r‘C:\Program Files\tools‘)         #切换到指定的路径目录
3 print(os.listdir(os.getcwd()))              #查看当前切换的目录下面有哪些目录
4 os.makedirs(r‘aa\bb\cc‘)
5 print(os.listdir(os.getcwd()))              #查看当前目录有没有创建成功aa目录
6 os.renames(r‘aa\bb\cc‘,r‘dd\ee\ff‘)
7 print(os.listdir(os.getcwd()))              #查看当前aa目录是不是变成了dd目录

目录的基本操作就是这些,大家要请于练习,如果有问题可以留言哦~

接下来我们看下对文件的操作有哪些常用的函数吧!

文件对于python来说是一个文件对象,不管是对文件有任何操作,我都需要通过open()函数来获取该文件对象并赋值给一个变量。

open(file_name,access_mode=‘r‘)       打开文件的函数中有两个参数,第一个参数是file_name:文件名,可以是绝对路径,也可以是相对路径。

第二个参数是access_mode:访问文件的方式:访问文件的方式有这么几种:r、w、a、r+、w+  接下来我们依次演示:

指针:代表文件中的光标目前所在位置。如图:

开始看代码:

open(file_name,‘r‘)        以读的方式打开文件,文件指针会在文件的开头

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘r‘)#在绝对路径打开file_a文本文件,记得加文件后缀.txt

open(file_name,‘w‘)        以写的方式打开文件,如果文件存在,会被清空。如果不存在,创建一个文件

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘w‘)#在绝对路径打开file_a文本文件,记得加文件后缀.txt

open(file_name,‘a‘)        为了在文件的末尾追加内容打开文件,如果文件存在,文件的指针在文件的末尾,如果不存在就创建一个文件

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘a‘)

现在开始正式的读取文件:

read()   这个方法有一个参数,括号中可以输入数字,表示读取多少个字节的内容。如果不填写,默认读取所有文件内容

以下代码将以次文件截图为依据,我们可以看到文件是txt文本,里面有三行数据,第一行是:123  第二行是:abc 第三行是:789

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘r‘)  #首先我们以支持读写的模式打开文件,然后将文件传递给变量file_a
2
3 file_read = file_a.read(2)   #开始读取文件的内容,读取前两个字符 12
4 print(file_read)             #将读取的内容打印

我们继续读取后面的内容,每次读取两个字节:

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘r‘)  #首先我们以支持读写的模式打开文件,然后将文件传递给变量file_a
2
3 file_read = file_a.read(2)   #开始读取文件的内容,读取前两个字符 12
4 print(file_read)             #将读取的内容打印
5
6 file_read2 = file_a.read(2)   #再次读取2个字节的内容
7 print(file_read2)             #将读取的内容打印,我们发现第一行只有3这么一个字节了,所以只有3

按字节多少,去读取文本中的内容,这个方法你一定明白了吧!

那么我们用默认的方式,不添加任何参数,直接读取所有的内容:

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘r‘)  #首先我们以支持读写的模式打开文件,然后将文件传递给变量file_a
2
3 file_read = file_a.read()   #开始读取文件的内容,默认不填写参数,默认读取所有的内容
4 print(file_read)             #将读取的内容打印

close()     关闭文件

1 file_a.close()              #关闭文件,多次按字节打开文件后,文件中的指针光标位置会改动,所以处理文件后记得关闭哦
1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘r‘)  #首先我们以支持读写的模式打开文件,然后将文件传递给变量file_a
2
3 file_read = file_a.read()   #开始读取文件的内容,默认不填写参数,默认读取所有的内容
4 print(file_read)            #将读取的内容打印
5
6 file_a.close()              #关闭文件,多次按字节打开文件后,文件中的指针光标位置会改动,所以处理文件后记得关闭哦

有时候,如果我们不知道第一行有多少个字节,但是我们需要的内容就是在第一行,那么我们就要用到它来获取第一行的内容:

readline()   默认获取第一行内容,多次调用,文件指针光标会读取下一行内容。

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘r‘)  #首先我们以支持读写的模式打开文件,然后将文件传递给变量file_a
2
3 file_read = file_a.readline()   #获取第一行内容
4 print(file_read)            #将读取的内容打印
5
6 file_read = file_a.readline()   #第二次用,所以获取的是第二行的内容
7 print(file_read)            #将读取的内容打印
8
9 file_a.close()              #关闭文件,多次按字节打开文件后,文件中的指针光标位置会改动,所以处理文件后记得关闭哦

接下来我们看看怎么获取一行内容,并且把内容存在一个list列表中,方便我们操作:

readlines()      它可以获取一行内容,并且把内容存在一个list列表中

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘r‘)  #首先我们以支持读写的模式打开文件,然后将文件传递给变量file_a
2
3 file_read = file_a.readlines()   #获取第一行内容,并把内容放在列表中
4 print(file_read)                 #将读取的内容打印,看第一行内容是不是在列表中
5 print(file_read[1])              #既然是列表,肯定支持元素下标获取我们要得内容
6 file_a.close()   #关闭文件

最后我们看下文件内容的写入,我们知道,刚才的文件中内容是:有三行数据,第一行是:123  第二行是:abc 第三行是:789

现在我们在里面加点料~~~

文件对象内置的有write()  可以向当前文件指针的位置,写入字符串到文件中。

文件对象的内置方法tell()  可以获取到当前文件指针的位置

文件对象的内置方法seek() 可以在文件中前后移动指针的位置,它有两个参数,第一个参数是:offset,表示移动多少字节的位置。第二个参数是:whence,表示从什么地方开始移动。

格式:file_a.seek(offset,whence)

获取当前文件指针的位置:

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘w+‘)  #首先我们以支持读写的模式打开文件,然后将文件传递给变量file_a
2
3 print(file_a.tell())  #获取当前指针的位置

我们使用w+的方式写入,w+ :如果文件存在,会在文件中写入内容,删除原来的内容。

1 file_a =open(r‘C:\Program Files\tools\file_a.txt‘,‘w+‘)  #首先我们以支持读写的模式打开文件,然后将文件传递给变量file_a
2
3 print(file_a.tell())  #获取当前指针的位置
4
5 file_a.write(r‘www.baidu.com‘)    #我们在第一行写入内容6 print(file_a.tell())  #获取当前指针的位置


 先到这里了~~基本的操作都是一样的,大家可以尝试写一下。不懂的记得评论,会回复大家的

----------------------------------------一个来自坚持笔记的新手

原文地址:https://www.cnblogs.com/woshidaliua/p/11272252.html

时间: 2024-10-08 23:24:54

Python基础总结之第九天开始【python之OS模块对目录的操作、以及操作文件】(新手可相互督促)的相关文章

python基础教程_学习笔记12:充电时刻——模块

充电时刻--模块 python的标准安装包括一组模块,称为标准库. 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 任何python程序都可以作为模块导入. $ cat hello.py #!/usr/bin/python print "Hello,signjing!" $ ./hello.py Hello,signjing! 假设将python程序保存在/home/ggz2/magiccube/mysh/p

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

python基础(变量,常量,python变量内存管理,变量的三个特征,花式赋值,注释 )

python基础 变量 定义:变量用来描述世间万物变化的状态 组成: 变量名:接收变量值 赋值符号:把变量值赋值给变量名 变量值:就是一个数值 注意: 变量名由数字/字母/下划线组成,不能以数字开头 变量名不能以下关键字命名 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global',

Python基础知识思维导图|自学Python指南

微信公众号[软件测试大本营]回复"python",获取50本python精华电子书. 测试/开发知识干货,互联网职场,程序员成长崛起,终身学习. 现在最火的编程语言是什么?答案就是Python. 人生苦短,我用Python Python的特点: Python一直是位于编程语言排行榜的前三位, Python遵循"简单.优雅.明确"的设计哲学,语法简单易懂,而且Python的中文文档也于2019年3月份发布,各种开发环境也越来越简单. Python免费开源. Pytho

[Python]基础教程(3)、Python基础语法

Python 标识符 在 Python 里,标识符由字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大小写的. 以下划线开头的标识符是有特殊意义的.以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入: 以双下划线开头的 __foo 代表类的私有成员:以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专

Python基础知识(一) 初识Python

Python简介 一.Python介绍 Python(英国发音:/?pa?θ?n/ 美国发音:/?pa?θɑ?n/),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年.可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的 LISP.作为一种解释型语言,Python 的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词).相比于C++或Java,Python让开发者能够用更少的代码表达想法.不管是小型

Python基础总结之异常、调试代码第十二天开始(新手可相互督促)

年薪20万的梦想,加油! 我们在写代码的时候,控制台经常会报错,因为某种错误,导致我们的程序停止,且不再运行下面的代码. 我们看一个错误的代码示例: def add_1(): #没有参数 print('我出错了') #不会被执行 def add_2(): #函数二调用函数一 print('第二个函数调用函数一,并给他一个参数') add_1(4) #函数一没有参数,所以有会报异常,并终止,不会执行函数一里面的代码 def add_3(): #函数三调用函数二 add_2() d = add_3(

Python基础篇【第九篇】:剖析装饰器

装饰器:装饰器:装饰器的语法以@开头,然后是装饰器函数的名字和可选的参数,紧跟着装饰器声明的是被修饰的函数和装饰函数的可选参数.剖析装饰器: #!/usr/bin/env python3 ''' 装饰器:装饰器的语法以@开头,然后是装饰器函数的名字和可选的参数,紧跟着装饰器声明的是被修饰的函数和装饰函数的可选参数. 表现形式: def outer(): def inner(): print("xxx") return test return inner @outer def f1():

Python之路,第九篇:Python入门与基础9

python3  集合set 集合set概念 集合是可变的容器 集合内的数据对象都是违约的(不能重复多次) 集合是无序的存储结构,集合中的数据没有先后关系 集合是相当于只有键,没有值的字典,则键是集合的数据. 集合内的元素必须是不可变对象 集合是可迭代的(可以用for等遍历) 原文地址:https://www.cnblogs.com/weizitianming/p/8987981.html