# python 文件的处理
# 配置文件 txt html ----使用内置函数open()
# open() 函数的作用打开或者创建文件
# file:你要打开或者创建的目标文件的文件名(或者相对路径、绝对路径)
# mode:模式,默认参数是只读;只读、只写、读写、追加
# encoding:如果你要读取的文件或者写入的文件包含中文,就要使用编码encoding = 'utf-8'
# 模式:r 只读 r+ 读写
# w 写 如果文件存在,就是先清空文件再写,如果文件不存在,就是新建一个文件再写 如果打开文件时以“w‘模式,读取到的文件为空,因为打开文件的时候,内容就已经被清空了
# w+ 读写
# a 追加写 只写 file存在的话就追加写,file不存在就新建一个再写,不会清空,写在文件的最后面
# a+ 读写 file存在的话就直接读写,file不存在就新建一个在写,a+模式打开的时候,光标就自动定位到最后面了,要想读取,需要用seek()移动光标
# 读取文件
# 例子,读取test.txt文件
file =open('test.txt','r',encoding='UTF-8') #打开文件,默认的是读取,可以自己指定读还是写
res = file.read(5) #如果有数字,就读取指定的元素个数,没有就读取文件全部内容
res_1 = file.readline() #读取一行
res_2 = file.readlines() #读取多行,返回值的结果是一个列表,每一行作为列表的一个元素存储在列表里面
for i in res_2:
print(i)
print(res_1)
# 写操作 w,清空写
# a+模式的读写
file =open('test.txt','a+',encoding='UTF-8')
file.seek(0,0) # 移动光标 第一个参数 你要移动的偏移量 第二个参数 相对谁去移动 0 头部 1 当前位置 2 尾部
#一个汉字 占3个位,所以如果文件是中文的话,偏移量3,6,9...,,一个英文占1位
res_1 = file.readline()
print(res_1) #读出为空,因为以a+模式打开的时候,光标自动定位到最后面,所以读出为空,要想读到数据,可以用seek()
file.write('hello1111') # r+模式下的写,都是写在文件的最后面,不管是先读后写还是先写后读
概念介绍:
相对路径 ../返回上一级 ../../返回上两级
绝对路径 直接右键copy pyth,有时候可能会用\转义符,或者最前面加r
file = open('G:\pythonproject_01\week4\class_0123_file\\test.txt',encoding='utf-8')
print(file.read())
# os 可以完成对路径的读取
# 首先导入 import os
import os
path_1 = os.getcwd() #获取当前的工作目录
path_2 = os.path.realpath(__file__) #获取当前文件的绝对路径,还会包含文件名 __file__ 表示当前文件
path_3 = os.path.basename(__file__) #获取当前文件名
# 切割路径的方法
# path_2 = os.path.realpath(__file__)
# path_4 = os.path.split(path_2)[0] #路径的切割,一层一层的切割,返回的是一个tuple(head,tail),可以选择取头部或者尾部
# 拼接路径
path_2 = os.path.realpath(__file__) #获取路径
path_4 = os.path.split(path_2)[0] #切割,获取返回元组的第一个元素
path_5 = os.path.join(path_4,'test1.txt') #拼接
# 加号也是拼接
path_5 = path_4 + '\\test1.txt' #遇到\t \n这种开头的文件名,无法识别,可以加一个\,或者用转义符 r来 处理