python目录和文件的基本操作_python--文件操作(基本篇)

目录

一、基本文件操作

1.1创建和打开文件

1.2关闭文件

1.3打开文件时使用with语句

1.4写入文件内容

1.5读取文件

二、目录操作

2.1os与os.path模块

2.2路径

2.3判断目录是否存在

2.4创建目录

2.5删除目录

2.6遍历目录

三、高级文件操作

3.1删除文件

3.2重命名文件和目录

3.3获取文件基本信息

1.1 创建和打开文件

open()函数基本语法:

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

参数解释:

filename:要创建或打开的文件名称;

mode:可选参数,指定文件的打开模式,默认为只读(r)

buffering:可选参数,指定文件的缓冲模式,0表示表达式不缓存,1表示表达式缓存,

默认为缓存模式;

open()经常实现以下功能:

1 打开一个不存在的文件时先创建该文件

创建新文件时,可用mode参数:w,w+,a,a+

new_wd=open(r'C:\Users\Desktop\kobe.xls',mode='w+')

new_wd.close()

2 以二进制形式打开非文本文件,如:图片、音频、视频

le = open(r'C:\Users\open_mode参数.png','rb')

print(le)

3 打开文件时指定编码方式 默认采用GBK编码

1.2 关闭文件

file.close()

1.3 打开文件时使用with语句

背景:open()打开文件后,一定要记得close()关闭文件,但是很多时候容易忘记,可能带来一 些意想不到的问题。

优势:with语句在处理文件时,无论是否抛出异常,都能保证with语句执行完毕后关闭已经打开的文件。

语法格式:

with expression as target:

with-body

参数说明:

expression:指定一个表达式,可以是打开文件的open()函数

target:用于一个变量,且将expression的结果保存到该变量中

with-body:指定with语句体,可以是执行with语句后相关的一些操作语句,也可用pass语句代替。

1.4 写入文件内容

input:

#新建文件test.txt

with open(r'C:\Users\Desktop\test.txt','w',encoding='utf-8') as file:

file.write('我爱你,科比')

print(file)

kb=open(r'C:\Users\Desktop\test.txt','r',encoding='utf-8')

print(kb.read())

kb.close()

output:

我爱你,科比

1.5 读取文件

1.5.1 读取指定字符

语法格式:

file.read([size])

参数解释:

file:文件对象

size:可选参数,指定要读取的字符个数,省略默认全部读取。

input:

with open(r'C:\Users\11602\Desktop\test.txt','r',encoding='utf-8') as file:

a=file.read()

print(a)

output:

我爱你,科比

若要读取部分内容,可以先使用文件对象的seek()方法将文件的指针移动到指定的位置。

file.seek(offset[,whence])

参数解释:

file:已经打开的文件内容

offset:用于指定移动的字符个数,其具体位置与whence有关

whence:用于指定从什么位置开始计算.值0表示从文件开始位置计算,1表示当前位置开始计算,

2表示从文件尾部开始计算,默认为0

input:

with open(r'C:\Users\Desktop\test.txt','r',encoding='utf-8') as file:

file.seek(3)

a=file.read()

print(a)

output:

爱你,科比

注:使用该方法时,offset的值是按一个汉字占两个(gbk编码)或者三个(utf-8)字符,其他类型字符 占1个

1.5.2 读取一行

方法: file.readline()

注:使用该方法时,需要指定打开文件的模式为r或者r+;

1.5.3 读取全部行

方法: file.readlines()

注:与1.5.2相同

二、目录操作(文件夹操作)

2.1 os与os.path模块

#导入os模块

import os

#os.path为os模块的子模块

os模块常用函数

os.path内置函数

2.2 路径

2.2.1 相对路径

input:

#获取当前路径

print(os.getcwd())

output:

C:\Users\PycharmProjects

2.2.2 绝对路径

语法格式:os.path.abspath(path)

path:要获取绝对路径的相对路径

input:

os.path.abspath(r'projects\1.txt')

output:

'C:\\Users\\projects\\1.txt'

2.3 判断目录是否存在

基本语法格式:

os.path.exists(path)

注:若输入的路径存在,返回True,否则返回False;

2.4 创建目录

2.4.1 创建一级目录

基本语法:

os.mkdir(path[,mode])

2.4.2 创建多级目录

基本语法:

os.makedirs(path,[mode,[exist_ok]])

# 创建多级目录

os.makedirs('科比/01/02/03')

2.5 删除目录

通过rmdir()删除目录时,只有当要删除的目录为{空}时才起作用;

基本语法:

os.rmdir(path)

# 排除异常

if os.path.exists(path):

os.rmdir(path)

print('删除目录成功')

else:

print('目录不存在')

注:rmdir()只能删除空目录;删除非空目录时调用shutil模块的rmtree()函数实现

import shutil

shutil.rmtree('科比')

2.6 遍历目录

基本语法:

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

参数说明:

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

topdown:可选参数,指定遍历目录的顺序,如果值为true,自上而下,false,自下而上;

onerror:可选参数,指定错误处理方式,默认为忽略

followlinks:可选参数,默认为true,指定在支持的系统上访问由符号链接指向的目录

input:

f=os.walk(r'D:\我的学习\Hadoop视频\1.笔记')

for i in f:

print(i,'\t')

output:

('D:\\我的学习\\Hadoop视频\\1.笔记\\1.笔记', [], ['~大数据技术之Hadoop(HDFS文件系统).doc', '~大数据技术之Hadoop(入门).docx', '大数据技术之Hadoop.xmind', '大数据技术之Hadoop(HDFS).docx', '大数据技术之Hadoop(MapReduce).docx', '大数据技术之Hadoop(入门).docx'])

三、高级文件操作

3.1 删除文件

基本语法:

os.remove(path)

#新建文件1.txt

new=open('1.txt','w')

new.close()

#删除文件1.txt

os.remove('1.txt')

# 排除异常

path='a.txt'

if os.path.exists(path):

os.remove(path)

print('删除成功')

else:

print('删除失败')

3.2 重命名文件和目录

基本语法:

os.rename(src,dst)

import os # 导入os模块

src = "d" # 要重命名的目录当前目录下的d

dst = "test" # 重命名后的目录重命名为test

if os.path.exists(src): # 判断目录是否存在

os.rename(src,dst) # 重命名目录

print("目录重命名完毕!")

else:

print("目录不存在!")

3.3 获取文件基本信息

基本语法:

os.stat(path)

input:

print(os.stat(r'C:\Users\Desktop\test.txt'))

for i in os.stat(r'C:\Users\Desktop\test.txt'):

print(i,'\n')

output:

os.stat_result(st_mode=33206, st_ino=17169973579403364, st_dev=2015818331, st_nlink=1, st_uid=0, st_gid=0, st_size=45, st_atime=1580356660, st_mtime=1580356660, st_ctime=1580353782)

各参数说明:

# 将时间戳转化为正常时间格式

timeStamp=os.stat(r'C:\Users\11602\Desktop\test.txt').st_atime

# 方法一:

import time

import datetime as dt

dateArray = dt.datetime.fromtimestamp(timeStamp)

otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")

print(otherStyleTime)

# 方法2:

timeArray = time.localtime(timeStamp)

otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)

print(otherStyleTime)

以上是本人最近学习的学习总结,希望能给需要的人带来一些帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值