06 文件的基本操作

06 文件的基本操作

1 文件的基本操作

功能方法备注
打开读取变量 = open(‘路径’,‘r’)
变量 = open(‘路径’,‘w’)若文件不存在,则船舰文件
追加变量 = open(‘路径’,‘a’)
bytes数据变量 = open(‘路径’,‘ab+’)ab+ | wb+ ;f.write(b’nihaoxiada’);适合用于图片、音乐等
可读可写+
操作读取f.read()默认情况下是全部;想读取一部分可以使用 f.read(10*)
读取首行f.readline(字数——索引)f.readline(3) = 读取首行的前三个字符串
读取多行f.readlines()返回值为列表
写入f.write(‘内容’)
f.writelines([’\nthis’,’\nis’,’\npython’])
鼠标针.seek(0)0 是文件开始的位置
保存保存变量.flush()
保存+关闭变量.close()
打开+保存+关闭with open(‘文件路径’,方式) as 变量
相对路径./同级目录
.//上同级目录
绝对路径从所在磁盘开始

# ================= ================= ================= =================# 写入多文件
f= open('./j.txt','w+')
f.writelines(['this','\nis','\nlife'])
f.seek(0)
print(f.read())
f.close()

# 结果:
this
is
life
# ================= ================= ================= =================

# 读取以上第一和第二行的代数据
f = open('./j.txt','r+')
f.seek(0)
print(f.readlines())
f.close()



# 结果:
['this\n', 'is\n', 'life']

1.1 文件流

变量 = io.StringIO() 或 = io.BytesIO 。需要先导入 io 模块, import io

import io
# 在电脑内存创建临时空间
f = io.StringIO()
# 写入数据
f.write('nihao')
# 读取数据
print(f.getvalue()) # getvalue():获取文件内容,并且不需要重新定义光标(指针)的位置
# 保存数据
f.close()
import io
# 生成二进制临时假文件
b_io = io.BytesIO()
b_io.write(b'hello world')
print(b_io.getvalue())
b_io.close()

2 文件目录操作

需要先导入 os 模块

Os 功能Os 方法
文件路径获取os.getcwd()cwd = Current Working Directory
切换路径os.chdir()
文件下一级目录os.listdir(r’path’)
文件夹及文件创建os.mkdir(‘文件夹名’)
删除 - 文件夹os.rmdir()只能删除空文件夹
创建多层目录os.makedirs()
删除多层目录os.removedirs()只能删除空文件夹
遍历文件夹os.walk(‘文件夹’)
移除 - 文件os.remove()
命名 - 文件夹及文件os.rename(原, 新)
把目录和文件名合成一个路径os.path.join(路径1,路径2)
CMD启动 cmdos.system(‘cmd’)
启动 cmd中的pyhonos.system(‘python’)

文件路径

>>> import os

# os.getcwd
>>> os.getcwd()
'C:\\Users\\William\\Desktop'


# os.chdir
>>> os.chdir('C:\\Users\\William\\')
>>> os.getcwd()
'C:\\Users\\William'

>>> os.chdir('D:')
>>> os.getcwd()
'D:\\'


# os.listdir()
>>> os.listdir(r"D:\001 蔡汶桦\网课\000 Python\01 趣码学院\03 Python 基础提升")
['03-01 函数基本概念、函数参数、作用域', '03-02文件基本操作 & 模块和包']


文件夹

>>> os.mkdir('abc')



>>> os.rmdir('abc')

>>> os.rmdir(r'C:\Users\William\Desktop\axt')


>>> os.makedirs(r'C:\Users\William\Desktop\aaa\bb') # 在Dekstop创建aaa文件夹,并在其里头创建bb文件夹

>>> os.removedirs(r"C:\Users\William\Desktop\aaa\bb") #先删除 bb 然后删除 aaa


>>> os.remove(r"C:\Users\William\Desktop\a.txt")

>>> os.rename(r'C:\Users\William\Desktop\a.py', 'b.py') 
>>> os.rename(r'C:\Users\William\Desktop\a', 'b')



>>> os.path.join(r"C:\Users\William\Desktop", "d.py")  
'C:\\Users\\William\\Desktop\\d.py'

CMD

>>> os.system('cmd') # > 打开CMD

-1073741510
>>> os.system('python') # > 打开CMD + PYTHON

-1073741510

3 模块和包

3.1 模块

导入的时候,python 会将 .py 文件运行一遍

定义.py 文件
表现形式import a
查看导入路径os.sys.path先导入模块,import sys
添加路径os.sys.path.append()
>>> os.sys.path

['C:\\Users\\William\\Desktop', 'D:\\000 Software_1\\Python3\\python37.zip', 'D:\\000 Software_1\\Python3\\DLLs', 'D:\\000 Software_1\\Python3\\lib', 'D:\\000 Software_1\\Python3', 'C:\\Users\\William\\AppData\\Roaming\\Python\\Python37\\site-packages', 'D:\\000 Software_1\\Python3\\lib\\site-packages', 'D:\\000 Software_1\\Python3\\lib\\site-packages\\win32', 'D:\\000 Software_1\\Python3\\lib\\site-packages\\win32\\lib', 'D:\\000 Software_1\\Python3\\lib\\site-packages\\Pythonwin']


>>> os.sys.path.append(r'D:\Python_William\Python_Pack_William')

>>> os.sys.path
['C:\\Users\\William\\Desktop', 'D:\\000 Software_1\\Python3\\python37.zip', 'D:\\000 Software_1\\Python3\\DLLs', 'D:\\000 Software_1\\Python3\\lib', 'D:\\000 Software_1\\Python3', 'C:\\Users\\William\\AppData\\Roaming\\Python\\Python37\\site-packages', 'D:\\000 Software_1\\Python3\\lib\\site-packages', 'D:\\000 Software_1\\Python3\\lib\\site-packages\\win32', 'D:\\000 Software_1\\Python3\\lib\\site-packages\\win32\\lib', 'D:\\000 Software_1\\Python3\\lib\\site-packages\\Pythonwin', 'D:\\Python_William\\Python_Pack_William']

引用模块。 PS: 确定索要使用的 .py 文件已经存在“合法”的文件夹里

条件
namemain当前文件运行
name文件名当文件作为模块被导入时
>>> import a    
我已经将代码运行一遍
a 


>>> a.func()   
打印Function



# ================= ================= ================= ============
# a.py 文件的代码
def func():
    print('打印Function')

print('我已经将代码运行一遍')

print(__name__)

3.2 包

定义存放多模块的文件夹

4 问题

读取不了数据

原因:鼠标针在文件位置是在最后面,所以读不了数据

解决方案:将鼠标针跳到前面 —— f.seek(0)

f = open('./d.py','w+')
f.write('nihaoshijie')0)
print(f.read())
f.close()


#结果 

>>>

# 原因 = 鼠标针处于文件后面,
# 解决方案 = 用f.seek(0),将鼠标放在前面
#  ================= ================= ================= =================

f = open('./d.py','w+')
f.write('nihaoshijie')
f.seek(0)
print(f.read())
f.close()

#结果 

>>> nihaoshijie

现象:无法删除文件夹

原因:你所在的磁盘不在要删除文件的位置。查看你所在位置 —— os.getcwd()

解决方案:换你的位置 —— os.chdir()

>>> os.remove(r'C:\Users\William\Desktop\a') # a 是文件夹,而不是文件

Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    os.remove(r'C:\Users\William\Desktop\a')
PermissionError: [WinError 5] 拒绝访问。: 'C:\\Users\\William\\Desktop\\a'


>>> a = os.walk(r'D:\001 蔡汶桦\网课\000 Python\01 趣码学院\03 Python 基础提升')

>>> list(a)

[('D:\\001 蔡汶桦\\网课\\000 Python\\01 趣码学院\\03 Python 基础提升', ['03-01 函数基本概念、函数参数、作用域', '03-02文件基本操作 & 模块和包'], []), ('D:\\001 蔡汶桦\\网课\\000 Python\\01 趣码学院\\03 Python 基础提升\\03-01 函数基本概念、函数参数、作用域', [], ['03-01 函数基本概念、函数参数、作用域——作业.py', '06文件.pptx', '1.png', '2.png', 'class5.py', '作业讲解.png', '作业,第二题.png']), ('D:\\001 蔡汶桦\\网课\\000 Python\\01 趣码学院\\03 Python 基础提升\\03-02文件基本操作 & 模块和包', [], ['07面向对象初级.pptx', '1.png', '2.png', 'class6.py'])]





5 Bonus

import datetime

功能方法
将格式化日期 --> str 对象datetime对象.strftime(’%Y-%m-%d’)

练习

https://www.jianguoyun.com/p/DSQp7FsQnei5CBjwqO4D

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值