【Python学习笔记Day28】5.4 Python文件的使用

5.4 Python字典的孪生兄弟之集合

      • 1.文件
          • 1. open() 打开文件
          • 2.打开模式:
            • 1)'r' 以只读方式打开文件(默认)
            • 2)'w' 以写入方式打开文件,会覆盖已存在的文件,不存在会创建
            • 3)'x' 如果文件已经存在,使用此模式打开将引发异常
            • 4)'a' 以写入模式打开,如果文件存在,则再末尾追加写入
            • 5)'b' 以二进制模式打开文件
            • 6)'t' 以文本模式打开(默认)
            • 7)'+' 可读写模式(可添加到其他模式使用)
            • 8)'U' 通用换行符支持
      • 2.文件对象方法
          • 1)f.close() 关闭文件
          • 2)f.read([size=-1]) 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回
          • 3)f.readline([size=-1]) 从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符
          • 4)f.write(str) 将字符串str写入文件
          • 5)f.writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
          • 6)f.seek(offset, from) 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
          • 7)f.tell() 返回当前在文件中的位置(指针位置)
          • 8)f.truncate([size=file.tell()]) 截取文件到size个字节,默认是截取到文件指针当前位置
      • 3. 文件的写入

#对文件的处理
输入–> 处理–> 输出
前面很多讲中,我们很好的处理数据,然后打印输出结果
即input()和print()获取和打印

1.文件

.exe .txt .ppt .jpg .mp4 .avi

1. open() 打开文件

可以使用 help(open)来查看文档

open(file, mode='r', buffering=-1, encoding=None,
errors=None, newline=None, closefd=True, opener=None)

file是文件名, mode即为打开模式,

2.打开模式:
1)‘r’ 以只读方式打开文件(默认)
2)‘w’ 以写入方式打开文件,会覆盖已存在的文件,不存在会创建
3)‘x’ 如果文件已经存在,使用此模式打开将引发异常
4)‘a’ 以写入模式打开,如果文件存在,则再末尾追加写入
5)‘b’ 以二进制模式打开文件
6)‘t’ 以文本模式打开(默认)
7)’+’ 可读写模式(可添加到其他模式使用)
8)‘U’ 通用换行符支持

打开此文件夹下的1st.py

f = open('test.txt',encoding='utf-8')
print(f)
#打印出以下格式
#<_io.TextIOWrapper name='D:\\Project\\python\\1st.py' mode='r' encoding='cp936'>

2.文件对象方法

#文件对象方法 执行操作

1)f.close() 关闭文件

在C语言的程序中,在打开文件操作完后,一定得记得关闭文件,
在python语言中,由于存在垃圾回收机制,可以不必关闭文件
但并不是说不用关闭文件,在完成写入之后,需要关闭文件,因为python会缓存写入的数据,如果中途
断电,缓存的数据不会写入文件中

2)f.read([size=-1]) 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回
print(f.read())     #打印文件内的所有信息
print(f.read())     #再次读取,则打印空行
f.close()   #关闭文件


f = open('test.txt',encoding='utf-8')
print(f.read(5))    #打印读取的前五个字符
#这时候的文件指针在第五个字符的位置
print(f.tell())     #打印5 告诉我们当前位置在5

对于有中文字符的来说,一个中文代表两个字节,这里并不是对等

f.close()
f = open('test.txt',encoding='utf-8')
print(f.read(15))    #打印读取的前15个字符
print(f.tell())     #打印16 告诉我们当前位置在16
3)f.readline([size=-1]) 从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符
4)f.write(str) 将字符串str写入文件
5)f.writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
6)f.seek(offset, from) 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
7)f.tell() 返回当前在文件中的位置(指针位置)
8)f.truncate([size=file.tell()]) 截取文件到size个字节,默认是截取到文件指针当前位置
print("seek()方法")
f.close()
f = open('test.txt',encoding='utf-8')
print(f.seek(15,0))  # 从文件开头开始,指针在25的位置
print(f.readline()) #从文件中读取的是    

print(list(f))  #讲文件转化为列表,每一行为一个元素

f.seek(0,0)
lines = list(f)
for each_line in lines:
    print(each_line)
#这样的效率很低,尤其对于数据很长的时候
#可以直接使用
f.seek(0,0) #指针返回文件开头
for each_lin in f:
    print(each_lin)

3. 文件的写入

写入文件时,必须确保在打开模式中有可写入的模式
f.write(‘I love you’) #报错,不可写入

f1 = open('test1.txt','w') #没有文件则创建
print(f1.write('I love you'))        #返回的是写入几个字符 打印10
f1.close()#关闭才会写入字符串,没有关闭,则会放在python的缓冲区里

你可能感兴趣的:(Python脚本语言)