Python入门(九)文件及目录操作

'''
在Python中,内置了文件File对象。
'''
#打开一个不存在的文件时先创建该文件
#file1 = open("status.txt", "w+")
#print(file1)
file2 = open("status.txt", "r", encoding = 'utf-8')
#print(file2)
file3 = open("ue_bg.png", "rb")
#print(file3)

'''
打开文件的模式:
r 只读。指针在文件头
rb 只读。二进制。指针在文件头
r+ 可读,可写。新内容从头开始覆盖原内容
rb+

w 只写
wb 只写。二进制。
w+ 读写。打开文件后,会清空文件内容变成空文件
wb+ 读写。二进制。

a 追加模式。指针在文件末尾
a+ 读写。追加

打开文件时,w,w+,a,a+ 模式下,当文件不存在时,会创建新文件

'''

#关闭文件  close() 方法先刷新缓冲区中还没有写入的信息,然后再关闭文件
#file1.close()
file2.close()
file3.close()

#打开文件 使用with语句
'''
如果打开文件时,出现异常,那么将导致文件不能及时被关闭
可以使用with语句,从而实现在处理文件时,无论是否抛出异常,保证with语句执行完毕后关闭文件
'''
with open('message.txt', 'w') as file:  #创建或打开文件
    pass

#写文件
file = open("status.txt", "w+", encoding = 'utf-8')
print(file)
file.write("你使用一张加速卡,小鸡撸起袖子开始吃饲料。进食速度大大加快")
file.flush() #刷新缓存区 保存内容
file.close()

#读文件
'''
1.读取指定字符
  调用read()方法的前提是打开文件,指定的打开模式为r或r+
'''
with open("status.txt", "r+", encoding = 'utf-8') as file:
    print(file)
    string = file.read(9)
    print(string)
    print(len(string.encode('utf-8')))

'''
file.seek(offset, [, whence])
offset  用于指定移动的字符个数 不是字节个数
whence  用于指定从什么位置开始计算  0 文件开头  1 当前位置  2 文件末尾
注意: 当没有用b模式(即rb),那么只允许从文件头开始计算相对位置

'''
with open("status.txt", "r+", encoding = 'utf-8') as file:
    file.seek(3)  #不是字节个数
    string = file.read(9) 
    print(string)
    

'''
2.读取一行
  调用file.readline()
'''

'''
3.读取全部行
  调用file.read() 不指定读取字符个数,即全部读取,返回字符串列表
  调用file.readline() 全部读取,返回字符串列表
'''

print("#==========================================================================#")
'''
    目录也就是文件夹
python中没有提供直接操作目录的函数或对象,需要内置的 os 和 os.path 模块实现
'''
# 目录操作,包括判断目录是否存在,创建目录,删除目录和遍历目录等

# os 模块
'''
os.name  用于获取操作系统的类型

os.linesep  用于获取当前操作系统上的换行符

os.sep  用于获取当前操作系统所使用的路径分隔符
'''


import os

print(os.name)
print(os.linesep)
print(os.sep)

# 获取当前工作目录
print(os.getcwd())

# 相对路径 就是 依赖于 当前工作目录的
'''
  相对路径的路径分割符,可以使用\进行转义,即\\
  可以直接使用/代替路径分割符号
  还可以在路径前面加上r或者R,那么该字符串将原样输出,不需要进行转义
'''

# 绝对路径 就是 文件的实际路径
file = open("status.txt", "r+", encoding = 'utf-8')
print(os.path.abspath("status.txt"))

# 拼接路径
'''
os.path.join(path1, path2, ...)
拼接时,不会检查路径是否真实

1.如果在拼接的路径中,没有一个绝对路径,那么拼接出来一个相对路径。
2.如果存在多个绝对路径,从左到右,以最后一个绝对路径为准。

'''

# 判断目录是否存在
'''
os.path.exists(path)  返回 True 或 False
还可以用来判断文件是否存在
'''

# 创建目录
'''
1.创建一级目录
os.mkdir(path, mode = 0o777)
如果文件已经存在抛出异常
如果该目录的上一级目录不存在,抛出异常
'''
if not os.path.exists('D:\\demo'):  # 创建绝对路径
    os.mkdir('D:\\demo')
else:
    print("路径已存在")

if not os.path.exists('temp'):  # 创建相对路径
    os.mkdir('temp')
else:
    print("路径已存在")

'''
2.创建多级目录
os.makedirs(path, mode = 0o777)
'''

# 还可以使用os.mkdir()递归创建多级目录


# 删除目录
'''
os.rmdir(path) 只能删除空目录。
当目录不存在时,系统找不到指定文件,异常。

删除非空目录,可以使用 python内置的标准模块 shutil
shutil.rmtree()
'''

# 遍历目录
'''
os.walk() 遍历指定目录下的全部目录(包括子目录)及文件。只在unix系统 windows系统下有效

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

top  遍历内容的根目录
topdown  True 表示自上而下遍历(先根后子)(默认) False 表示自下而上遍历(先子后根)
onerror  指定错误处理方式(函数),默认为忽略

返回值 元组(dirpath, dirnames, filenames)
           (当前遍历路径,当前路径下子目录,当前路径下文件)

'''

tuples = os.walk(r'D:\Python\Python376\temp')
for p in tuples:
    print(p, "\n")












  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值