• 18-python-文件的操作


    1、文件的操作

    1 # -*- coding:utf-8 -*-
    2 
    3 f=open("简历.txt")
    4 
    5 date=f.read()
    6 
    7 print(date)
    8 
    9 f.close()

    文件打开模式:读-r   写-w     a--追加内容     

    ⭐读一行,光标移动一行  readline()  读出来的内容是字符串

    ⭐write()

    1 # -*- coding:utf-8 -*-
    2 
    3 f = open("简历.txt", "w")
    4 
    5 #f.write()
    6 
    7 f.close()

    若文件不存在,会创建一个文件,若文件存在,会清空文件内容,写的参数必须是字符串,

    ⭐追加操作-a

    1 # -*- coding:utf-8 -*-
    2 
    3 f = open("简历.txt", "a")
    4 
    5 f.write("111111111111111
    ")
    6 f.write("2222222222222222
    ")
    7 f.writelines(["1","2","3","
    "])
    8 f.close()

    把需要写的内容追加的文件最后

    文件r+模式,能读,能写  

    1 # -*- coding:utf-8 -*-
    2 
    3 f = open("简历.txt", "r+")
    4 data=f.read()
    5 print(data)
    6 f.write("qqqq
    ")
    7 
    8 f.close()

    文件写的位置从文件光标处开始写,读的时候从光标处开始读

    文件的修改:

    1 src_f = open("简历.txt", "r")
    2 data=src_f.readlines()
    3 src_f.close()
    4 des_f=open("简历.txt","w",encoding="utf-8")
    5 des_f.writelines(data[0:10])
    6 des_f.close()

    with  open(   “简历”,“r”) as   f

      文件不用手动关闭,系统自动关闭

    文件操作练习题目:

    1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数
    apple 10 3
    tesla 100000 1
    mac 3000 2
    lenovo 30000 3
    chicken 10 3
     1 f = open("a.txt", "w")
     2 f.write("apple 10 3
    tesla 100000 1
    mac 3000 2
    lenovo 30000 3
    chicken 10 3
    ")
     3 f.close()
     4 f=open("a.txt","r")
     5 data=f.readlines()
     6 f.close()
     7 price=0
     8 for i in data:
     9     i=i.strip("
    ")
    10     i=i.split(" ")
    11     price+=int(i[1])*int(i[2])
    12 print(price)

    文件处理,以rb的模式处理

     1 # -*- coding:utf-8 -*-
     2 
     3 f=open("a.txt","rb")
     4 
     5 data=f.read()
     6 
     7 f.close()
     8 
     9 print(data)
    10 print(data.decode("utf-8"))

    文件处理,以wb的模式处理

    1 f=open("b.txt","wb")
    2 f.write(bytes("111111111223中国
    ".encode("utf-8")))
    3 f.close()

    文件打开时不知道编码,可以用“latin-1”编码,不能写中文

    用这种编码去打开文件,能尽可能多的保存数据

    f.flush  文件的刷新,把内存的信息写到文件中去

    f.tell  给出光标所在的位置  给出的位置的以字节为单位,一个中文字为3字节

    f.open("a.txt","r+",encoding="UTF-8",newline=" ")   newline=" "读取文件中真正的换行符。

    f.seek(n,0)  从0 开始算,指定光标位置,字节的位置  f.seek(n,1),从光标前一次停留位置开始算 

    f.read(4)   read读4个字符

    f.truncate()  文件的截取,在输入模式

    例子:查找日志最后一行

     1 # -*- coding:utf-8 -*-
     2 
     3 f = open("运行日志.txt", "rb")
     4 offs = -10
     5 while True:
     6     f.seek(offs, 2)
     7     date = f.readlines()
     8     if len(date) > 1:
     9         print(date[-1].decode("utf-8"))
    10         break
    11     offs *= 2
    12 
    13 f.close()
  • 相关阅读:
    UVA 10572 Black & White (状压DP)
    ZOJ 3466 The Hive II (插头DP,变形)
    POJ 3133 Manhattan Wiring (插头DP,轮廓线,经典)
    HDU 3377 Plan (插头DP,变形)
    HDU 1964 Pipes (插头DP,变形)
    FZU 1977 Pandora adventure (插头DP,常规)
    URAL 1519 Formula 1 (插头DP,常规)
    POJ 1739 Tony's Tour (插头DP,轮廓线DP)
    HDU 1693 Eat the Trees (插头DP)
    hihoCoder #1162 : 骨牌覆盖问题·三 (矩阵快速幂,DP)
  • 原文地址:https://www.cnblogs.com/zhfang/p/8799191.html
Copyright © 2020-2023  润新知