• 用py操作文件(file类的功能)


    用py操作文件

    1、找到文件并打开  ------- f = open(filename)  

    2、读、修改 ---------- f.read() 为空即读所有;f.write(修改的内容)

    3、保存&关闭 --------- f.close() 保存并关闭

    文件打开模式只能以一种形式打开:

    r 即read

    w 即write,创建模式,如果文件里有内容用w的话会把原来的文件清空再创建

    a 即append


    用法:

    创建模式

    方法1、

    f = open(file = '文件所在路径/文件名.后缀' , mode = 'w')  注意:路径需要用正斜杠 /

    f.write()

    f.close()

    方法2(推荐)、

    with open(file = '文件所在路径/文件名.后缀' , mode = 'w') as f:

    f.write()

     

    读模式

    f = open(file = '文件所在路径/文件名.后缀' , mode = 'r')

    print(f.readline()) #读一行

    date = f.read() #读剩下的所有

    print(date)

    f.close()

    追加模式

    f = open(file = ‘文件名.后缀' , mode = 'w')

    f.write(需要添加的内容) #追加到文件尾部

    f.close()


    循环文件

    f = open(file = ‘文件名.后缀' , mode = 'w')

    for line in f:

    split()方法,即通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

    例:

    str = "Line1-abcdef Line2-abc Line4-abcd";

    print str.split( ); # 以空格为分隔符,包含

    print str.split(' ', 1 ); # 以空格为分隔符,分隔成两个

    输出结果


    其他必会功能

    1、f.seek() #走多少个字节

    2、f.truncate() #指定长度截断文件,指定长度的话就从文件开头开始截断指定长度,不指定长度的话就从当前位置到文件尾部


    混合模式

    1、w+  写读,这功能没有什么意义

    2、r+   读写,能读能写,但都是写在文件的最后,和追加一样

    f = open('文件名','r+')

    f.write("写入的内容")

    f.write("写入的内容")

    print

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

    f = open('文件名','a+')

    f.write("写入的内容")

    f.write("写入的内容")

    f.seek(0) #从头开始读

    print


    修改文件

    1、用r+模式打开

    f = open('文件名','r+')  注:此时光标是在文件尾部

    f.seek()  注:括号内填想要修改的文件位置,0是从头开始

    f.write("修改的内容") 注:修改的内容是从你seek的位置开始往后覆盖原来的内容,比如,seek(7),write("哈哈"),即从原来内容的第7个字符开始,“哈哈”会覆盖掉第8第9个字符的内容


    不占内存修改文件

    一、用旧文件读,用新文件写(生成新文件)

    1、用r模式打开旧文件

    f = open('文件名','r')

    2、用w模式打开新文件

    f_new = open('文件名.new','w')

    3、定义旧内容、新内容

    old_str = "被修改内容"

    new_str = "修改内容"

    4、循环旧文件

    for line in f:

    if "被修改内容" in line:

    line = line.replace(old_str,new_str)

    #replace()方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次 

    5、写入新文件

    f_new.write(line)

    6、关闭旧、新文件

    f.close()

    f_new.close()

    二、新文件完全覆盖旧文件

    1、导入包

    import os  #os包是和操作系统进行操作的,创建文件、修改文件、删除文件等

    old_file = '文件名'

    new_file = '文件名.new'

    f = open(old_file,'r')

    f_new = open(new_file,'w')

    old_str = "被修改的内容"

    new_str = "修改的内容"

    for line in f:

    if "被修改的内容" in line:

    line = line.replace(old_str,new_str)

    f_new.write(line)

    f.close()

    f_new.close()

    os.replace(new_file,old_file)

    方法2:

    import os

    with open('旧文件名','r') as read_f,open('新文件名','w') as write_f:

    for line in  read_f:

    line = line.replace('被修改的内容','修改的内容')

    write_f.write(line)

    os.remove('旧文件名')

    os.replace('新文件名',''旧文件名’)


    文件从硬盘写到内存

    1、不关闭文件的状态下从内存写到硬盘,注:把数据写在硬盘上的一定是字符串

    语法:f.flush()

    把字符串变为对应数据类型的方法是:

    eval()

  • 相关阅读:
    使用WCF实现消息推送
    T31P电子秤数据读取
    持续性任务代码的一些测试
    XP+Android手机DIY家庭视频点播系统-历时3周全力打造吊丝的幸福生活
    Android 上传文件到XP
    Android ListView的一个坑,你可掉进去过?
    无脑无负担网站架构-- Application Request Route的一些应用
    Android 一些注意
    懒人的ERP开发框架--2B&苦B程序员专用
    PHP Token(令牌)设计应用
  • 原文地址:https://www.cnblogs.com/nanjo4373977/p/11935791.html
Copyright © 2020-2023  润新知