[Python]学习基础篇:文件和目录

文件

文件是数据在外部介质上的数据的集合,对于文件在Linux系统上包括普通文件,目录文件,二进制文件,设备文件等。

  • 文件的打开或者创建 
    方法:open(‘file_name’,’打开方式’[,buf_size]) 
    buf_size:参数指的是文件缓存区的大小,0代表不缓存,1代表缓存,使用系统默认设置的缓存区大小,大于1代表缓存大小。 
    打开方式:如下表
打开方式 说明
‘r’ 只读的方式打开文件,若文件不存在,则产生异常
‘r+’ 以读写的方式方式打开文件,不删除原内容,若文件不存在,产生异常
‘w’ 只写的方式打开文件,删除原内容,无文件则创建
‘w+’ 读写的方式发开文件,删除原内容,无文件则创建
‘a’ 以追加的方式打开一个文件,不删除原内容,在文件末尾追加数据,无文件则创建
‘a+’ 以读写的方式打开文件,不删除原内容,在末尾写数据,无文件则创建
‘rb’ 同’r’,打开二进制文件
‘rb+’ 同’r+’,打开二进制文件
‘wb’ 同’w’,打开二进制文件
‘wb+’ 同’w+’,打开二进制文件
‘ab’ 同’a’,打开二进制文件
‘ab+’ 同’a+’,打开二进制文件

  • 普通文件的读写 
    读取: 
    read([num]) 
    若num不写时,读取整个文件的内容,num>0时读取num大小字节的数 
    readline():读取文件的一行 
    readlines():读取文件的每一行 
    例如:
(1).使用read()
!/bin/python
f=open('file.txtx','r')
s=f.read()
f.close()
print(s)
(2).使用readline读取一行读完整个文件
!/bin/python
f=open('file.txtx','r')
whil True:           //读完整个文件
    s=f.readline()    //读取一行
    if s=='':
        break
    print s
f.close
(3).使用readlines()读取文件的每一行,读完整个文件
!/bin/python
f=open('file.txtx','r')
s=f.readlines()        //读取后形成一个元组for line in s:
    print line,
f.close()

写入: 
write(str)


  • 二进制文件的读取和写入 
    写去: 
    对于二进制文件,是无法将数字,bool类型的数据写入到二进制文件中。 
    (1).使用struct模块中的pack()方法将数字和bool型转化为字节串,然后使用write方法写入到二进制文件中。 
    方法:pack(‘格式传’,格式对象) 
    (2).使用pickle模块中的dump方法直接将对象转化为字节串并写入到二进制文件中。 
    方法:dump(格式obj,f) 
    例如:
(1).使用struct模块
 !/bin/pythonimport strcut
f=open('file.bit','wb')
n=100w=Truex=392.0
str=struct.pack('if?',b,x,w)
f.write(str)
f.close()
(2).使用pickle模块
!/bin/pythonimport pickle
f=open('file.bit','wb')
n=100w=Truex=392.0
pickle.dump(n,f)
pickle.dump(w,f)
pickle.dump(x,f)
f.close()

读取: 
二进制文件的读取就是写入的逆过程 
(1).读取字节串,使用函数将其还原成数据,使用struct模块中的unpack()方法,返回一个元组 
方法:unpack(格式传,字节表)

!/bin/pythonimport 
structf=open('file.bit','rb')
str=f.read(3)
tu=struct.unpack('if?',str)    //返回一个元组print tu
f.close()

(2).使用pickle模块中load方法直接读取并还原成原有数据,返回还原后的对象 
方法:load(f)

!/bin/python
import pickle
f=open('file.bit','rb')
n=pickle.load(f)      #读出文件的数据个数
while i<n:
    x=pickle.load(f)
    print x
    i++
f.close()
  • 文件对象的|常用方法

方法名 说明
flush() 把缓存区的内容写入文件
close() 把缓存取得内容写入文件,并关闭文件释放对象
seek(offset[,whence]) 文件指针移动
tell() 返回文件指针当前位置

  • 常用的文件操作函数

对于文件的操作,python提供了os模块和os.path模块的函数 
(1).os模块

函数名 说明
access(path) 根据mode指定的权限访问文件
chmod() 修改文件的访问权限
remove(path) 删除path指定的文件
rename(src,dst) 重命名
stat(path) 返回指定文件的属性
fstat(path) 返回打开文件的所有属性
listpath(path) 返回path目录下的文件和目录

(2).os.path模块

函数名 说明
abspath(path) 返回path的绝对路径
dirname(path) 返回目录的路径
exists(path) 文件是否存在
getsize(file_name) 返回文件的大小
isabs(path) 是否为绝对路径
isdir(path) 是否为目录
isfile(path) 是否为文件
splitext(p) 从路径中分割出扩展名
splitdrive(p) 从路径中分割出驱动器的名称
walk(path) 遍历目录数

目录

  • 目录的创建 
    (1).创建单个目录 
    方法:mkdir(path) 
    (2).创建多级目录 
    方法:makedirs(path1/path2/….)
  • 目录的删除 
    (1).删除一个目录 
    方法:rmdir(path) 
    (2).删除多级目录 
    方法:removedirs(path1/path2/….)
  • 目录的遍历 
    对于目录的遍历,在上述文件的操作方法中有一个listdir(path)方法,此方法只能列出path目录下的目录和文件,但是不能列出子目录下的文件和目录。 
    (1).使用listdir函数进行递归
!/bin/pythonimport osdef dir_view(path):
    list_dir=os.listdir(path)    for dir in list_dir:
        sub_path=os.path.join(path,dir)    #获取完整路径
        if os.path.isdir(sub_path):
            dir_view(path)

(2).使用os模块的walk方法,返回一个元组

!/bin/pythonimport osdef view_dir(path):
    list_dir=os.walk(path)     #返回一个元组,包括3个元素,所有路径名,所有目录列表,文件列表
    for root,dirs,files in list_dir:        
        for d in dirs:            
             print os.path.join(root,d)  #获取完整路径
        for f ini files:            
           print os.path.join(root,f)   #获取文件完整路径

python对于文件的操作比较简单,不像c那样比较复杂,对于同一个操作有几个不同的函数,例如对于文件的打开,C语言中有open函数,fopen函数等。

原文地址:http://blog.51cto.com/lnsane784/2057037

时间: 2024-10-17 14:04:05

[Python]学习基础篇:文件和目录的相关文章

Python学习基础篇—文件操作和集合

这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 我们笑着 我们抬头望天空 星星还亮着几颗 我们唱着 时间的歌 才懂得相互拥抱 到底是为了什么 因为我刚好遇见你 留下足迹才美丽 风吹花落泪如雨 因为不想分离 因为刚好遇见你 留下十年的期许 如果再相遇 我想我会记得你 我们哭了 我们笑着 我们抬头望天空 星星还亮着几颗 我们唱着 时间的歌 才懂得相互

python学习笔记九——文件与目录

1.python进行文件读写的函数是open或file类 mode:r  只读 r+   读写 w  写入,先删除原文件,再重新写入,如果文件没有则创建 w+  读写,先删除原文件,再重新写入,如果文件没有则创建(可写入和输出) a  写入,在文件末尾追加新的内容,文件不存在则创建 a+  读写,在文件末尾追加新的内容,文件不存在则创建 b  打开二进制文件,可与r,w,a,+结合使用 U  支持所有的换行符号,"\r","\n","\r\n"

Python学习基础篇第一篇——快速入门(适合初学者)

一.Python学习基础篇第一篇--(快速入门) 建议从Python2.7开始学习,Python2.7可以支持扩展大量的第三方类库,是目前比较成熟的版本 编写代码的软件推荐将python自带的IDLE和PyCharm集成IDE结合起来使用 1.1 Python命令行 Python命令行将以 >>> 开始,比如 >>>print 'Hello World!' 对于验证简单的命令可以在python自带的IDLE中完成  1.2 在Python自带的IDLE写一段小程序 在所

python学习笔记 操作文件和目录

如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数. 打开Python交互式命令行,我们来看看如何使用os模块的基本功能: >>> import os >>> os.name # 操作系统类型 'posix' 如果是posix,说明系统是L

Python学习-基础篇4 模块与包与常用模块

一 模块介绍 1.什么是模块?#常见的场景:一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spam使用. #在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别: 1 使用python编写的.py文件 2 已被编译为共享库或DLL的C或C++扩展 3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包) 4 使用C编写并链接到python解释器的内置模块2.

Python学习—基础篇之文件操作

文件操作 文件操作也是编程中需要熟练掌握的技能,尤其是在后台接口编写和数据分析过程中,对各种类型的文件进行操作,获取文件信息或者对信息进行存储是十分重要的.本篇博客中将主要对常见的文本格式文件和Excel文件的相关操作进行介绍. 一.文本文件 1.1 文件操作流程 1.打开文件,获得文件句柄,并赋值给一个变量 : 2.通过句柄对文件进行相关操作: 3.关闭文件 示例: 1 # -*- coding:utf-8 -*- 2 # author: cdc 3 # date: 2018/8/23 4 5

Python学习-基础篇11 前端知识之HTML内容

HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5) while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.secd(b"<h1>Hello world!</h

Python学习-基础篇1

一.变量: 1)变量定义规范: #1. 变量名只能是 字母.数字或下划线的任意组合#2. 变量名的第一个字符不能是数字#3. 关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda',

python学习基础篇(一)

一:机器码和字节码 机器码计算机能够直接识别,字节码计算机不能直接识别. 高级语言:例如Python java c# php c++(字节码) 低级语言:c,汇编(机器语言) 二:语言之间的对比 java的执行效率比Python的执行效率高,但比Python的开发效率低. PHP类:适合于写网页 Python,java:可以写网页,也可以写后台 三:Python基础 python种类:jpython javascriptpython  pypy(cpython开发的Python) python的