第一模块 day5 下

2.29    操作文件

1.    找到文件  打开
2.    读, 修改
3.    保存 关闭


1.    f.open(filename)
2.    f.read(50)  只读50个.. 
    f.read() 不写数字就读所有,
    f.write(YOURDATA)


3.    f.close()

----------------


文件打开模式    只能以一种方式
python比较变态,只能以读、创建、追加 3种模式中的任意一种打开文件,不能即写又读。


操作模式


    r 只读模式

    w 创建模式,若文件已存在,则覆盖旧文件

    a 追加模式,新数据会写到文件末尾



创建文件

f = open(file='D:/工作日常/staff.txt',mode='w')
f.write("Alex  CEO  600\n")
f.write("黑姑娘  行政  5000\n")
f.close()


只读模式

f = open(file='兼职白领学生空姐模特护士联系方式.txt',mode='r')
print(f.readline())  # 读一行
print('------分隔符-------')
data = f.read()  # 读所有,剩下的所有
print(data)
f.close()



追加模式

f = open(file='兼职白领学生空姐模特护士联系方式.txt',mode='a')
f.write("黑姑娘 北京  168  48\n")  # 会追加到文件尾部
f.close()


循环文件

f = open(file='兼职白领学生空姐模特护士联系方式.txt',mode='r')
for line in f:
    line = line.split()    split不添加参数默认是空格分隔, 分隔后每行是一个列表
    name,addr,height,weight,phone = line
    height = int(height)
    weight = int(weight)
    if height > 170 and weight <= 50:
        print(line)
f.close()



f.seek()    走多少个字节..  ,如果是英文,每次1个, 如果是中文 每个汉字3个字节

f.flush()    强制刷到硬盘            为什么要强制刷新到硬盘,是因为 文件写入不是马上到硬盘的,都是临时存在
            内存, 如果断电,就gg... 所以有了flush,而且还不需要f.close. 就可以直接到硬盘了.正常是f.close之后
            才到硬盘


f.tell()    返回光标的位置

f.truncate(100) 从0截断到100        如果里面不写数字,就从光标的位置到末尾 全部去掉        

举例
f = open('空姐联系方式.txt','a',encoding='utf-8')
f.seek(9)
print(f.tell())

f.truncate()



f.truncate() 如果不写数字,就从光标的位置9到末尾 全部没了

如果写了数字,这个时候又有seek,那么, seek失效,直接从0开始,从头开始截断到数字位置


-----------------------------
读



f.read   一次性读完, 读完是个str

f.readline  一次读一行  读完是个str

f.readlines        一次性读完所有行,,返回的是列表


-----------------------



2.33    混合模式下处理文件


w+ 写读 , 这个功能基本没什么意义,它会创建一个新文件 ,写一段内容,可以再把写的内容读出来,没什么卵用。

r+ 读写,能读能写,但都是写在文件最后,跟追加一样,,   不会覆盖源文件, 往后添加

a+ 追加读,文件 一打开时光标会在文件尾部,写的数据全会是追加的形式

以上3种 都不常用
--------------


修改文件      r+

f = open('空姐联系方式.txt','r+',encoding='utf-8')
f.seek(6)
f.write("你好")


我想你好456789    123456你好你好你好
我想请123456789    123456你好你好你好

以上2行内容本来意义,执行代码后偏移6个字节,后,请123,变成了你好.   你好占了6个字节,所以 请123被吃掉了

---------------

 

posted @ 2019-09-25 10:00  Yuki-Yang  阅读(134)  评论(0编辑  收藏  举报