美文网首页
文件与目录操作

文件与目录操作

作者: __深蓝__ | 来源:发表于2019-01-15 16:48 被阅读0次
  • 文件,就是存储在某种长期储存设备上的一段数据,长期存储设备包括:硬盘、U 盘、移动硬盘、光盘等
  • 在计算机中,文件是以二进制的方式保存在磁盘上的
  • 文本文件,可以使用文本编辑软件查看,本质上还是二进制文件,例如,python的源程序
  • 二进制文件,保存的内容不是给人直接阅读的,而是提供给其他软件使用的,例如,图片文件、音频文件、视频文件等,二进制文件不能使用文本编辑软件查看
文件操作

在计算机中操作文件通常使用三个步骤:

  • 打开文件
  • 处理文件
  • 关闭文件
方法 功能
open(file, mode='r') 获得文件对象,通过文件对象操作文件
fileObject.read([size]) 从文件中读取size个字节的数据,默认读取所有数据
fileObject.write(str) 字符串写入文件,返回实际写入的字符个数
fileObject.close() 将数据写入磁盘,并释放资源
fileObject.flush() 直接把内部缓冲区的数据立刻写入文件
  • 文件打开方式

open方法默认以只读方式打开文件,并且返回文件对象
改变打开方式,使用f = open("文件名", "打开方式")

打开方式 功能 若文件不存在 是否覆盖
r 只能读 报错 -
r+ 可读可写 报错
w 只能写 创建文件
w+ 可读可写 创建文件
a 只能写 创建文件 否,追加写
a+ 可读可写 创建文件 否,追加写
  • 按字节读取文件
  • read() 方法一次性读入所有的文件数据
  • read(size) 方法读入size个字节的数据
file = open("readme.txt")
text = file.read()
print(text)
file.close() 
  • 按行读取文件内容
  • readline方法可以一次读取一行内容
  • 方法执行后,会把文件指针移动到下一行,准备再次读取
file = open("readme.txt")
while True:
    text = file.readline()  # 读取一行内容
    if not text:  # 判断是否读到内容
        break   
    print(text, end="")  # 每读取一行的末尾已经有了一个 `\n`
file.close()
  • 读文件最佳实践
  • read()一次性读取最方便
  • 如果不能确定文件大小,反复调用read(size)比较保险
  • 如果是配置文件,调用readlines()最方便
  • 写入文件
  • write方法用于向文件中写入指定字符串
  • 在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
  • 如果打开方式带b,字符串要用encode方法转为bytes形式,否则报错:TypeError: a bytes-like object is required, not 'str'
f = open("readme.txt", "w")
f.write("hello python!\n")
f.write("今天天气真好")
f.close()
实例演示:文件复制
  • 小文件复制
file_read = open("source.txt")
file_write = open("target.txt", "w")

text = file_read.read()
file_write.write(text)

file_write.close()
file_read.close()
  • 大文件复制
file_read = open("source.txt")
file_write = open("target.txt", "w")

while True:
    text = file_read.readline()  # 如果是二进制文件,建议使用read(size)方法
    if not text:
        break
    file_write.write(text)

file_write.close()
file_read.close()
文件操作中的异常处理

由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现

try:
    f = open('/path/to/file', 'r')  # 当open出现异常时,f 不会被创建
    print(f.read())
finally:
    if f:
        f.close()

但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法

with open('/path/to/file', 'r') as f:
    print(f.read())

这和try ... finally相同,但代码更简洁,并且不必调用f.close()方法

文件/目录的常用管理操作
  • 终端中通过使命可以完成创建文件、文件重命名、删除文件、改变路径、查看目录内容等操作
  • 同样,在Python中通过程序也可以实现上述功能,但需要导入os模块
import os
print(os.name)
nt

posix代表Linux、Unix、Mac OS X系统,nt代表Windows系统

  • 常用文件操作
方法名 说明 示例
rename 重命名文件 os.rename(源文件名, 目标文件名)
remove 删除文件 os.remove(文件名)
  • 常用目录操作
方法名 说明 示例
listdir 目录列表 os.listdir(目录名)
mkdir 创建目录 os.mkdir(目录名)
rmdir 删除目录 os.rmdir(目录名)
getcwd 获取当前目录 os.getcwd()
chdir 修改工作目录 os.chdir(目标目录)
path.isdir 判断是否是文件 os.path.isdir(文件路径)




- end -

相关文章

  • linux文件和目录操作

    文件目录操作 cp 复制 rm 移除文件或目录 mv 移动文件与目录,或更名

  • 文件与目录操作

    数据的存取方式数据库存取-->适合大量、且关系复杂并有序的数据存取文件存取-->适合大量、数据关系简单的数据存取,...

  • 文件与目录操作

    文件,就是存储在某种长期储存设备上的一段数据,长期存储设备包括:硬盘、U 盘、移动硬盘、光盘等在计算机中,文件是以...

  • 文件与流-1

    文件与流 持久化操作:(文件里、数据库里)Java.io 文件分隔符 目录操作 文件操作

  • Golang os包与设置配置文件路径

    一、os包的学习与使用(文件,目录,进程的操作) 参考golang语言中os包的学习与使用(文件,目录,进程的操作...

  • 文件和目录处理相关

    文件和目录处理相关 题: 考点:文件操作/写入操作; 延伸:目录操作函数,其他文件操作; 文件读写操作 文件系统函...

  • LInux学习笔记2-文件与目录的操作

    进行文件与目录的操作时,常用的命令包括: mkdir: 创建目录。 rm: 移除文件和目录。 cp: 复制文件和目...

  • Mac终端常用的基本命令

    目录操作: 文件操作: 选择操作: 进程操作: 时间操作: 网络与通信操作: Korn Shell 命令 : 其他...

  • Linux文件操作

    文件操作 (Linux文件操作)) [文件|目录] Linux文件操作:为了对文件和目录进程处理,你需要用到系统...

  • 终端 目录与文件操作

    目录 创建目录 mkdir folderName 进入目录 cd folderName 返回上级目录 cd .....

网友评论

      本文标题:文件与目录操作

      本文链接:https://www.haomeiwen.com/subject/uajerqtx.html