zoukankan      html  css  js  c++  java
  • 文件操作

    # open("文件名","文件模式",encoding='utf-8')
    # 3种文件模式:r、w、a
    # r模式:读模式,只能读不能写,文件不存在不会创建,会报错,不写模式默认就是读模式
    # w模式:写模式,只能写不能读,文件不存在会创建,文件已经存在会清空文件的内容
    # a模式:追加模式,只能写不能读,文件不存在会创建,文件已经存在不会清空文件的内容,新内容会追加到末尾


    # read操作
    f=open("a.txt","r")
    # result=f.read() #读取文件中所有内容放到一个字符串
    # result=f.readlines() #读取文件中所有内容放到一个list中
    # result=f.readline() #读取一行内容,返回一个字符串
    # print(result)
    # 文件指针,先读readlines时,文件指针已经到文件末尾,再读read时,已经读不到内容了
    print(f.readlines())
    f.seek(0)#可以用seek将文件指针移动到0的位置,在read就可以读到内容了
    print(f.read())
    f.close()

    # write和writelines
    lis=["1","2","3","4"]
    f=open("a.txt","w",encoding='utf-8')
    # f.write("1111") #write只能写一个字符串到文件中
    f.writelines(lis) #writelines可以将列表中的元素循环写进文件中
    f.close()

    # 将lis中的内容写进文件且换行
    lis=[1,2,3,4,5]
    f=open("a.txt",'w')
    # 方法一:用循环
    for i in lis:
    f.write(str(i)+" ")
    # 方法二:用列表生成式
    num=[str(i)+" " for i in lis]
    f.writelines(num)

    f.write(num)
    f.close()



    # r+ 读写 w+ 写读 a+ 追加读模式
    # r相关模式,文件不存在会报错,文件指针在最前面
    # w相关模式,文件不存在会创建,会清空文件的内容
    # a相关模式,文件不存在会创建,默认文件指针在最后,如果需要读,需要移动文件指针到最前面;但是不管怎么移动文件指针,写的话都是写在最后面
    #
    f=open("a.txt","r+",encoding="utf-8")
    print (f.tell())
    print(f.write("ppppp"))
    print (f.tell())
    f.close()

    # f=open("a.txt","w+",encoding="utf-8")
    # print(f.tell()) # 输出文件指针的位置
    # f.flush() # ???????????????????????????????????????????????
    # f.write("123")
    # f.seek(0) #打开文件时,指针在0的位置,写了123后,指针在3的位置,需要将指针移动到0才能读到文件
    # print(f.read())
    # f.close()

    # f=open("a.txt","a+",encoding="utf-8")
    # # a+模式,默认文件指针在最后,读之前需要移动文件指针
    # print(f.tell()) # 输出文件指针的位置
    # f.seek(0) # 移动文件指针到0的位置
    # print(f.read())
    # f.write("123")
    # f.close()


    文件循环
    f=open("a.txt","r")
    for line in f:
    line.strip(" ")
    print("line: %s"%line,end=" ")


    # 替换文件内容
    # 将access.log文件中的-全部改为*
    FILENAME="a.txt"
    # 方法一
    # f=open(FILENAME,"r")
    # str=f.read()
    # f.close()
    # new_str=str.replace("-","*")
    # f=open(FILENAME,"w")
    # f.writelines(new_str)
    # f.close()

    # 方法二
    # f=open(FILENAME,"r+")
    # str=f.read()
    # new_str=str.replace("*","-")
    # # f.truncate() #清空文件 ???????????????????????????????????????
    # print(f.read())
    # f.seek(0)
    # f.write(new_str)
    # f.close()

    # 方法三,用备份文件的方式
    import os
    f1=open(FILENAME,'r+')
    f2=open(FILENAME+".bak","w+")
    # str=f1.read()
    # new_str=str.replace("*","-")
    # f2.write(new_str)
    for line in f1:
    new_line=line.replace("-","*")
    f2.write(new_line)
    f1.close()
    f2.close()
    os.remove(FILENAME)
    os.rename(FILENAME+".bak",FILENAME)



    # 用with方式打开文件,会自动关闭文件,不用手动close
    import os
    with open("a.txt","r",encoding="utf-8") as f1, open("a.txt.bat","a+") as f2:
    for line in f1:
    new_line=line.replace("!","*")
    f2.write(new_line)
    os.remove("a.txt")
    os.rename("a.txt.bat","a.txt")
  • 相关阅读:
    jQuery标签操作
    Bootstrap和Font Awesome
    jQuery拾遗
    Bootstrap笔记
    软件测试
    Day01 第一个Python程序
    cd指令
    ls命令
    type命令
    每天一个Linux指令
  • 原文地址:https://www.cnblogs.com/zhengp/p/14721634.html
Copyright © 2011-2022 走看看