前言

在python中,内置了文件(file)对象,通过一些内置的方法就可以实现对文件的操作,例如open()方法创建一个文件对象,write()方法向文件写入内容。

一.文件基本操作

1.创建和打开文件

想要操作文件,先要创建或者打开指定文件并创建文件对象,可以通过内置函数open()来实现。

?

1

2

3

4

5

file = open(file_name[,mode[,buffering]])

'''

file_name : 要创建或者打开的文件名

mode : 用于指定文件打开的方式

'''

mode参数的参数值表

模式

描述

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

注意

采用open()函数打开文件时,默认采用的是GBK编码,如果想要用其他编码方式,需要加上encoding参数

file = open('./text.txt','a+',encoding='utf-8')

#需要采用原文件用的编码方式打开,不然会报错

2.关闭文件

打开文件之后,需要及时关闭,以免对文件造成不必要的破坏。可以用内置函数close()。

file = open('./text.txt','a+')

file.close()

close()函数先刷新缓冲区中还没有写入的信息,将其写入到文件中,再关闭文件,起到对文件的保护作用。

3.写入文件

语法

file = write(string)

demo

?

1

2

3

4

5

6

#打开文件

file = open('./text.txt','a+')

#写入文件

file = write('不负代码,不负卿')

#关闭文件

file.close()

注:

再写入文件的时候要注入打开文件的时候是处于什么模式,不然会把原数据覆盖掉。

4.读取文件

读取文件的前提是在打开文件时,指定的打开模式为r(只读)或者r+(读写)否则,会抛出异常。

(1)读取指定字符

file.read([size])

#size :用于指定要读取的字符个数,如果省略,则一次性读取所有内容。

(2)读取一行

file.readline()

该方法用于读取一行文本

(3)读取全部行

file.readlins()

二.目录操作

python内置了os模块及子模块os.path用于对目录或文件的操作。

os模块提供的与目录相关的函数

函数

说明

getcwd()

返回当前的工作目录

listdir(path)

返回指定路径下的文件和目录信息

mkdir(path[,mode])

创建目录

makedirs(path/path2.....)

创建多级目录

rmdir(path)

删除目录

removedirs(/path1/path2...)

删除多级目录

chdir(path)

把path设置为当前工作目录

walk(top[,topdown[,onerror])

遍历

access(path,accessmode)

获取指定文件是否有某个权限(accessmode的等于R_OK(读取),W_OK(写入),X_OK(执行),F_OK(存在)),如果有指定的权限,返回1,否则返回0.

chmod(path,mode)

修改path指定文件的访问权限

remove(path)

删除指定的文件路径

rename(src,dst)

将文件或目录src重命名为dst

stat(path)

返回path指定文件的信息

os.path模块提供与目录有关的函数

函数

说明

abspath(path)

用于获取文件或目录的绝对路径

exists(path)

用于判断目录或者文件是否存在,如果存在则返回True,否则返回False

join(path,name)

将目录与目录或者文件名拼接起来

splitext()

分离文件名和拓展名

split(path)

将路径和文件名分开

basename(path)

从一个目录中提取文件名

dirname(path)

从一个路径中提取文件路径,不包括文件名

isdir(path)

用于判断路径是否有效

demo —— 获取当前工作目录

import os

print(os.getcwd())

demo —— 判断目录是否存在

import os

print(os.path.exists("c:\demo"))

因为exists()是os的子模块提供的,所以要要加前缀,os.path

demo —— 创建一级目录

?

1

2

3

4

5

6

7

import os

path= "c://demo"

#如果要创建的目录已经存在,则会抛出异常,先判断要创建的目录是否存在

if not os.path.exists(path):

os.mkdir(path)

else:

print('该目录已经存在')

mkdir(path)创建的目录是一级目录,如果传入的path中最后一级的上级目录不存在,那么会抛出异常。

demo —— 创建多级目录

import os

os.makedirs("C:\demo1\demo2\...")

demo —— 删除目录

?

1

2

3

4

5

6

7

8

import os

path= "C:\demo1\demo2"

#判断要删除的目录,如果不存在会抛出问题

if os.path.exists(path):

os.rmdir("C:\demo1\demo2")#删除的是demo2这个文件

print("目录删除成功!")

else:

print("该目录不存")

注:

rmdir()函数只能删除空的目录,如果不为空就不能删除,可以一下代码删除不为空的目录。

?

1

2

import shutil

shutil.rmtree("C:\demo\text")

demo —— 遍历目录

os.walk()的返回值是一个包含三个元素(dirpath,dirnams,filenames)的元组生成器对象。

dirpath: 是一个字符串,表示当前遍历的路径

dirnames: 是一个列表,表示的是当前路径下包含的子目录

filenames: 也是一个列表,当前目录下的文件

?

1

2

3

4

5

os.walk(top,[topdown][,onerror][,followlinks])

'''

top: 用于指定要遍历的目录

topdown: 可选参数,用于指定要遍历的顺序,如果为True(默认),表示从上到下遍历,如果为False,表示从小到上。

'''

?

1

2

3

4

5

6

7

8

import os

path= "C:\demo"

#root 是当前根路径,dirs包含路径下的子目录,files包含了子目录下的二五年间

for root,dirs,flesin os.walk(path,topdown=True):

for namein dirs:

print(os.path.join(root,name))

for namein files:

print(os.path.join(root.name))

demo —— 产找当前目录下某个文件是否存在

?

1

2

3

4

5

6

7

import os

path= "C:\demo"

filename= "love.txt"

for root,dirs,filesin os.walk(path):

for namein files:

if filename== name:

print(os.path.join(root,name))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/lc-snail/p/13248709.html

python代码大全表解释-python文件及目录操作代码汇总相关推荐

  1. python代码大全表解释-Python中顺序表的实现简单代码分享

    顺序表python版的实现(部分功能未实现) 结果展示: 代码示例: #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object ...

  2. python代码大全表解释-python中的字典用法大全的代码

    如下代码是关于python中的字典用法大全的代码. #!/usr/bin/env python # # [SNIPPET_NAME: Dictionaries 101] # [SNIPPET_CATE ...

  3. python代码大全表解释-python实现顺序表的简单代码

    顺序表即线性表的顺序存储结构.它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的.比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存 ...

  4. python代码大全表解释-python操作列表的函数使用代码详解

    python的列表很重要,学习到后面你会发现使用的地方真的太多了.最近在写一些小项目时经常用到列表,有时其中的方法还会忘哎! 所以为了复习写下了这篇博客,大家也可以来学习一下,应该比较全面和详细了 列 ...

  5. python基础代码大全-python文件及目录操作代码汇总

    前言 在python中,内置了文件(file)对象,通过一些内置的方法就可以实现对文件的操作,例如open()方法创建一个文件对象,write()方法向文件写入内容. 一.文件基本操作 1.创建和打开 ...

  6. c语言代码大全表解释_正点原子Linux第十章C语言版LED灯实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第十章C语言版LED灯实验 第八章我们讲解了如何用汇编语 ...

  7. python代码大全表解释-【初学】Python异常代码含义对照表

    原标题:[初学]Python异常代码含义对照表 Python常见的异常提示及含义对照表如下: 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 Keyb ...

  8. python代码大全表解释-.python3基础之“术语表(1)”

    1.注释: 行首有一特殊标志符号运行时告知编程忽略此行:使代码更易于阅读. 例如: 1 #这是一个注释 2 3 print("hello world") #print() 方法用于 ...

  9. c语言代码大全表解释_C语言常用错误代码释义大全,值得收藏!

    对于刚学编程,刚接触C++的新手来说,编译运行报错是最头疼的一件事,爆出一堆英文,英语差一点的又不知道什么意思,所以也不知道如何去改,在此,我给大家传一份常见错误中英文对照表及简单解释,希望可以帮到大 ...

最新文章

  1. .NE 后退刷新验证码
  2. 针对2013年B题碎纸片拼接问题(附件一、附件二)
  3. android高仿微信拍照、多选、预览、删除(去除相片)相冊功能
  4. Exchange2010恢复已禁用邮箱后用户登录会出错
  5. 前端学习(1412):多人管理32修改
  6. 方向盘开极品飞车9很Hapyy
  7. 序列推荐系统文献调研(1)
  8. 解析 | 如何从频域的角度解释CNN(卷积神经网络)?
  9. C++程序设计:原理与实践(进阶篇)15.7 vector、list和string
  10. php ci框架中脚手架是做什么用的
  11. java将中国标准模式转换成yyyy-mm-nn_java-IO
  12. Android SqlLite数据库的创建、增、删、改、查、使用事务
  13. SQL 列转行和动态用时间生数据列
  14. 文档数据库与关系数据库的比较
  15. Xaml技术:浅析为什么说一个标签就是new一个对象?
  16. 论文阅读:Region Proposal by Guided Anchoring
  17. Debezium系列之:Debezium UI部署详细步骤
  18. iptable命令参数详解
  19. JavaScript如何制作简单倒计时效果
  20. c语言组播源码_CLAA Class C简单组播业务的实现

热门文章

  1. Android Activity生命周期举例说明(图文)
  2. 电子科技大学通信原理视频教程 瓦特芯收藏
  3. AJAXA进行分页(2)
  4. 未能加载文件或程序集“AspNetPager”或它的某一个依赖项。拒绝访问。(异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))...
  5. Linux基础知识1
  6. 虚拟化技术中,为什么说容器技术暂时将不会取代虚拟机模式
  7. putty登陆sourceforge.net(设置登录)
  8. 最强 Android Studio 使用小技巧和快捷键
  9. sping中注解事务的应用
  10. GetOpenFileName 选择文件夹的解决方法