Python智阐8-文件和目录操作

本篇主要介绍文件目录、文件的一些操作方法。

其中目录的操作需要引入os模块:

import os

操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中。

1、目录操作方法

1.1 查看当前目录

import os

print(os.getcwd()) #查看当前目录

输出:

>>>D:\Code

1.2 返回指定目录下的所有文件

import os

path = r"D:\Code"

print(os.listdir(path))

会以列表的形式,返回所有文件

输出:

>>>['.idea', '4.py', 'log', 'test.txt', 'venv', '函数.py', '基本数据类型.py','文件读写.py', '输入和输出.py']

1.3 目录创建、重命名、删除

import os

path = r"D:\Code"

# 在当前目录D:\Code下创建目录

os.mkdir("test") #方式1:直接创建test

os.mkdir(r"D:\Code\test") #方式2:输入完整目录进行创建

# 重命名刚刚创建的目录

os.rename("test", "testpy")

# 删掉刚刚创建的目录

os.rmdir("testpy") #方式1:直接删除test

os.rmdir(r"D:\Code\testpy") #方式2:输入完整目录进行删除

1.4 判断目录是否存在

import os

path = r"D:\Code"

#判断是否是目录

print(os.path.isdir(path))

#判断目录是否存在

print(os.path.exists(path))

1.5 目录拼接、拆分

import os

#目录拼接

newPath = os.path.join(r"D:\Code\test", 'test.txt')

print(newPath)

#目录拆分

path = os.path.split(r"D:\Code\test\test.txt")

print(path)

#获取文件扩展名

txtName = (os.path.splitext(r"D:\Code\test\test.txt"))

print(txtName)

print(txtName[1])

输出:

>>>D:\Code\test\test.txt

>>>('D:\\Code\\test', 'test.txt')

>>>('D:\\Code\\test\\test', '.txt')

2、打开文件/关闭文件

文件的打开和关闭用open()和close()来实现

open()函数主要参数介绍:

参数file:文件路径

参数mode:打开方式,常用的mode有

r 以只读的方式打开文件,文件读取光标会放到文件的开头

w 打开一个文件,只用于写入,如果文件存在则打开文件,写入的内容会覆盖原内容,如果文件不存在,则新生成一个文件。

a 打开一个文件用于追加。如果文件存在,则文件读写光标会放到文件的末尾,新写入的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

+ 打开一个文件进行更新(可读可写)。

b 二进制模式。

还有r+、w+、a+、rb、wb、ab等。可自行参考官方文档。

参数encoding:编码方式 (encoding="utf-8"一般都是utf-8)

errors:错误处理 (errors="ignore"表示忽略错误)

path = r"D:\Code\test.txt"

f = open(path, "r")

#f = open(path, "r", encoding="utf-8", errors="ignore")

f.close()

3、读写文件

3.1 read() 读取文件内容

path = r"D:\Code\test.txt"

f = open(path, "r")

txt = f.read() #读取文件全部内容

print(txt)

f.close()

3.2 read(n) 读取指定字符数

path = r"D:\Code\test.txt"

f = open(path, "r")

txt = f.read(2) #读取指定字符 -1 表示读取全部内容

print(txt)

f.close()

3.3 readline() 读取整行

path = r"D:\Code\test.txt"

f = open(path, "r")

txt = f.readline() #读取整行

print(txt)

f.close()

3.4 readlines() 读取所有行并返回列表

path = r"D:\Code\test.txt"

f = open(path, "r")

txt = f.readlines() #读取所有行并返回列表

print(txt)

f.close()

输出:

>>>['hello 智数分析1!\n', 'hello 智数分析2!\n', 'hello 智数分析3!\n', 'hello 智数分析4!']

3.5 写文件

内容先写入内存缓冲区,然后再由内存缓冲区写入到文件。

path = r"D:\Code\test.txt"

f = open(path, "a")

f.write("hello python") #将信息写入内存缓冲区

f.flush() #刷新内存缓冲区

f.close()

4、文件读写异常

前面已经介绍过了python异常处理,我们在处理文件时也经常会遇到一些异常,会导致f.close()无法执行。

如果也用try......except......finally方式去处理,程序代码会比较复杂。

try:

f = openr(r"D:\Code\test.txt", 'r')

print(f.read())

finally:

if f:

f.close()

Python提供了with语句来帮我们自动调用close()方法,以后我们要处理文件时,都可以用以下这种写法。

path = r"D:\Code\test.txt"

with open(path, "r") as f:

print(f.read())

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181012A0GGSG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券