1.步骤:                                                          
#1. 打开文件,得到文件句柄并赋值给一个变量
#2. 通过句柄对文件进行操作
#3. 关闭文件
#1. 打开文件,得到文件句柄并赋值给一个变量
f = open('可不可以',encoding="utf8")  #默认打开模式就为r
#2. 通过句柄对文件进行操作
d = f.read()
print(d) 
#3. 关闭文件
f.close()

2.打开文件的模式                                                                                                                                    

文件句柄 = open('文件路径', '模式')

   模式可以是以下方式以及他们之间的组合:

python中的tz Python中的T7文件怎么打开_python中的tz

1、读模式 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式

f = open("test", "r",encoding="UTF-8")  #只读的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式
i=f.read()   # 读取文件,bing 赋值给i
print(i)     #打印i
f.close()    #关闭文件夹

2、读写模式 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。

f = open("test", "r+",encoding="UTF-8")  #读写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式
i=f.read()   # 读取文件,bing 赋值给i
print(i)     #打印i
f.write("我要学Python\n")       #写入
# f.flush()
f.close()    #关闭文件夹

3、写模式 w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件

f = open("test", "w",encoding="UTF-8")  #写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式
f.write("我要学Python\n")       #写入,文件夹存在覆盖,不存在创建
f.close()    #关闭文件夹

4、读写模式 w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件

f = open("test", "w+",encoding="UTF-8")  #写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式
f.write("我要学Python\n")       #写入,文件夹存在覆盖,不存在创建
print("定位之前的光标位置:%s" % (f.tell()))
f.flush()                       #刷新文件使内存的内容刷新至文件夹
f.seek(0)                       #因为W+读取文件之后会定位在文件尾部,所以需要重新定位一下光标位置,要不无法读取
print("定位之后的光标位置:%s" % (f.tell()))
i = f.read()
print(i)
f.close()    #关闭文件夹n

5、追加 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入

f = open("test", "a",encoding="UTF-8")  #追加方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式
f.write("我要学Python\n")       #写入,文件夹存在追加,不存在创建
print("定位之前的光标位置:%s" % (f.tell()))
f.seek(0)                       #因为a追加文件之后会定位在文件尾部,所以需要重新定位一下光标位置,要不无法读取
print("定位之后的光标位置:%s" % (f.tell()))
f.close()    #关闭文件夹

6、追加读 a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

f = open("test", "a+",encoding="UTF-8")  #追加读方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式
f.write("我要学Python\n")       #写入,文件夹存在创建,不存在创建
print("定位之前的光标位置:%s" % (f.tell()))
f.flush()                       #刷新文件使内存的内容刷新至文件夹
f.seek(0)                       #因为W+读取文件之后会定位在文件尾部,所以需要重新定位一下光标位置,要不无法读取
print("定位之后的光标位置:%s" % (f.tell()))
i = f.read()
print(i)
f.close()    #关闭文件夹

3.文件处理的函数                                                                                     

f = open('test','a+',encoding="utf8")
print ("文件名为: ", f.name)
print(f.closed)#文件如果关闭返回True
print(f.encoding)#查看使用open打开文件的编码
f.flush()#刷新
print(f.seek(3))#从开头开始算,将光标移动到第三个字节
#readline()
#从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。
fo = open("test", "r",encoding="UTF-8")
line = fo.readline(3)       #指定读取16字节
print("读取指定的字符串为:%s" % (line))
print("光标现在的位置:%s" %(fo.tell()))
fo.seek(0,0)          #之所以用这个是因为前面已经读了16个字符了所以要把光标调到0 的位置
print("调整后光标的位置:%s" %(fo.tell()))
line = fo.readline()       #读取第一行
print("读取第一行:%s" % (line))
#read()
# 用于从文件读取指定的字节数,如果为给定或为负则读取所有
fo = open("test1", "r", encoding="UTF-8")
line = fo.read()  # 不指定字符节读取所有
print(line)
fo = open("test1", "r", encoding="UTF-8")
line = fo.read(6)  # 指定读取16字节
print(line)
#readlines()
#读取所有行(直到结束符 EOF)并返回列表。
fo = open("test", "r",encoding="UTF-8")
data = fo.readlines()
print("读取所有行:%s" % data)
for line in data:
    line = line.strip("\n")     #使用strip去掉换行符/n
    print("分行读取:%s" % (line))
#truncate()
#用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则重置到当前位置。
fo = open("test", "r+",encoding="UTF-8")
line = fo.readline()
print ("读取行1: %s" % (line))
fo.truncate()
line = fo.readlines()
print ("读取行2: %s" % (line))
fo = open("test", "r+",encoding="UTF-8")
fo.truncate(3)            #截取10个字符,其余的清空
line = fo.read()
print ("读取的数据: %s" % (line))
#next()
# 返回文件的下一行
# 打开文件
f = open("test", "r",encoding="UTF-8")
for index in range(1):
    line = next(f)
    print ("第 %d 行 - %s" % (index, line))
#writelines()
#用于向文件中写入一序列的字符串,这一序列字符串可以是由迭代对象产生的,
# 如一个字符串列表,换行需要制定换行符 \n。
fo = open("test1", "a+",encoding="UTF-8")
seq = ["我要学Python 1\n", "我要学Python 2"]
fo.writelines( seq )
fo.flush()
fo.seek(0,0)                                            #跳到行首
line = fo.readlines()                                 #读取所有行
print ("读取的数据: %s" % (line))