python之路-09-文件操作

9.1文件操作流程

1.打开文件,得到文件句柄并赋值给一个变量

2.通过句柄对文件进行操作

3.关闭文件

9.2 文件读写及关闭操作

#!Author:lanhan
#data = open("yesterday",encoding="utf-8").read()
#f =  open("yesterday",‘w‘,encoding="utf-8")  #文件句柄,也就是内存对象
f =  open("yesterday",‘a‘,encoding="utf-8")
#读文件,默认是r(读)[文件读一次后,再读第二遍时从内容最下面继续读],w(写,覆盖原文件),a(在源文件基础上追加).一次操作要么是读,要么是写,不能同时进行
#data = f.read()
#print(data)
f.write("\n我爱北京天安门。。。。。。。\n")   #\n换行
f.write("天安门上太阳升。。。。。。。。。")      #写文件就是覆盖原来文件,写一个新文件
f.close()   #关闭文件

 

扩展:

#f =  open("yesterday",‘r+‘,encoding="utf-8")   #r+ 读写(可读可追加写)
#f =  open("yesterday",‘w+‘,encoding="utf-8")     #w+ 写读(创建新文件追加写,源文件不能读,只能读新创建的文件)
#f =  open("yesterday",‘a+‘,encoding="utf-8")     #a+ 追加读写
print(f.readline())
print(f.readline())
f.write("--------diao-----------1\n")
f.write("--------diao-----------1\n")
f.write("--------diao-----------1\n")
print(f.tell())
f.seek(10)
print(f.readline())
f.write("should be at the begining of the second line")
f.close()
#f =  open("yesterday",‘rb‘)    #二进制文件格式读文件(网络传输、视频等)
f =  open("yesterday",‘wb‘)    #二进制文件格式写文件(网络传输、视频等)

f =  open("yesterday",ab‘)
f.write("hello binary\n".encode())  #.encode()将字符串转换成二进制
f.close()

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

  • rU
  • r+U

 

 

9.3 循环读

#!Author:lanhan
f =  open("yesterday",‘r‘,encoding="utf-8")
#读取前5行(若是到第10行停止,加一个判断即可)
#for i in range(5):
    #print(f.readline())

‘‘‘#ow loop
#读取文件的每一行(方法1和方法2,是将文件全部读取到内存中,当数据量较大时,则内存可能被撑爆)
#for line in f.readlines():   #方法1
    #print(line)
#方法2
for index,line in enumerate(f.readlines()):
    if index == 9:
        print(‘-----我是分割线----------‘)
        continue
    print(line.strip())
‘‘‘
#方法3(high bige)  读一行,保存一行到内存中,再大数据也不怕
count = 0
for line in f:
    if count == 9:
        print(‘------我是分割线--------‘)
        count += 1
        continue
    print(line)
    count +=1

9.4 文件高级操作

#!Author:lanhan

f =  open("yesterday",‘r‘,encoding="utf-8")
print(f.tell())
print(f.readline())
print(f.tell())
print(f.readline())
print(f.readline())
print(f.tell())     #打印当前指针位置
f.seek(10)            #查找指针位置10,0是文件开头
print(f.readline())

#f.detach()   #文件编辑过程中,改变编码
#print(f.fileno())#返回内存地址编号
#print(f.seekable())  #判断指针是否能移动,能移动返回为true(d打印机不能移动)
print(f.encoding)   #打印文件编码
print(f.name)   #打印文件名
print(f.writable()) #判断文件可写
print(f.flush())    #文件写是先写到内存中,然后内存达到一定值后,才写进硬盘中,flush将写入内存中的内容,强制刷新到硬盘
import sys,time
for i in range(20):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.1)

f =  open("yesterday",‘a‘,encoding="utf-8")
#f.write("妹妹的")
f.seek(10)
f.truncate(20)  #从指针位置往后截断10个字符,指针前面内容保持不变(为空,清空文件)

9.5 文件修改

#!Author:lanhan
‘‘‘
f = open("yesterday","r",encoding="utf-8")
f_new = open("yesterday.bak","w",encoding="utf-8")
for line in f:
    if "肆意的快乐等我享受" in line:
        line = line.replace("肆意的快乐等我享受","肆意的快乐等lanhan享受")
    f_new.write(line)
f.close()
f_new.close()
‘‘‘
import sys
f = open("yesterday","r",encoding="utf-8")
f_new = open("yesterday.bak","w",encoding="utf-8")
find_str = sys.argv[1]
replace_str = sys.argv[2]
for line in f:
    if find_str in line:
        line = line.replace(find_str,replace_str)
    f_new.write(line)
f.close()
f_new.close()

扩展:

#!Author:lanhan
with open("yesterday","r",encoding="utf-8") as f:   #当with代码块执行完毕时,内部会自动关闭并释放文件资源
    for line in f:
        print(line)
‘‘‘
#with又支持同时对多个文件的上下文进行管理
with open("yesterday","r",encoding="utf-8") as f1, \    #官方建议一行代码不超过80字符,多行时用\
      open("yesterday2","r",encoding="utf-8") as f2
pass
‘‘‘

时间: 2024-11-07 14:45:22

python之路-09-文件操作的相关文章

Python不归路_文件操作(一)

Python文件操作 Python文件操作的语法是: open(file,mode,buffering,encoding,erros,newline,closefd) 我们先来看下各个参数, file:很明显,输入文件的路径. mode:mode参数有很多  r 以只读方式打开文件,默认参数  r+ 以读写方式打开文件   w 以写入方式打开文件,如果文件存在,先删除原文件,再创建文件:如果文件不存在直接创建  w+ 以读写方式打开文件,如果文件存在,先删除原文件,再创建文件:如果文件不存在直接

python之路---08 文件操作

二十六.   文件 f = open(文件路径,mode = '模式',encoding = '编码格式') 1.基础 ① 读写时,主要看光标的位置 ②操作完成要写    f.close( ) f.flush( ) ③f  文件句柄是一个可迭代对象  可用for 循环 ④要用  \n  进行增减空白 2.文件路径 ① 相对路径:.相对于当前程序所在的文件夹,如果在文件夹内,直接写名字 不在时,需要出文件或进文件 文件名 /        进文件 ../            出文件 ②绝对路径:

python字符串处理与文件操作

1.strip函数 strip是trim(裁剪)掉字符串两边的空格或字符.(lstrip/rstrip) 如: 空格 theString = ' abcdbcyesornoabcbacdd ' print theString.strip() abcdbcyesornoabcbacdd 字符 theString = 'abcdbcyesornoabcbacdd' print theString.strip('abcd') #去掉两端的abcd字符 yesorno 问题:如何去掉中间空格. theS

python成长之路9——文件操作open

一. 打开文件 f = open("db","r",encoding="utf8") r:只读 w:只写,会先清空文件 a:追加 x:如果文件存在,则报错,否则,创建文件并只写 b:上面的参数都可以加"b",意思是以二进制形式打开文件,读取写入的都是字节,就不需要考虑"encoding"啦 encoding="utf8":告诉python解释器用utf8进行转码,当我们读取字符串时解释器

Python学习之路4 - 文件操作&编码转换

文件操作 文件操作大概分三步: 把文件打开. 操作文件. 把文件关上. 打开文件 打开文件用open()函数,打开成功后返回一个资源,具体语法如下. open(要打开的文件,打开方式,打开文件的格式,默认为utf-8) #例如 f = open('passengers.txt','r',encoding='utf-8') 上例用open以只读的模式打开文件,因为该文本是utf-8编码的,所以第三个参数是utf-8 w 模式是写入,是创建一个新文件的写,所以如果已经有了该文件就会被覆盖掉,注意安全

python学习笔记(三):文件操作和集合

这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 寂寞当然有一点 你不在我身边 总是特别想念你的脸 距离是一份考卷 测量

Python 第三天 文件操作

文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. open会自己在Python中找. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读,也

java与python在处理大文件操作上的对比

1.问题描述 现在对一个2g的大文件,抽取第二列含有特点16个串的信息,并将这些含有特串的信息,写回到两个文件中 2.具体实现 (1)java代码 package naifen; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java

python学习笔记-(七)python基础--集合、文件操作&函数

本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: 1 2 3 4 >>> list_1 = [1,4,4,5,6,7,9,10] >>> list_1 =set(list_1) >>> print(list_1) {1, 4, 5, 6, 7, 9, 10} 2)关系测试:测试两组数据之间的关系,交集.并集.

python学习过程-字典和文件操作

1.dict ,字典,键值对 person = { "name" : "alex", "age" : 19, "gender" : "man" } person['name']通过key值来获取 2.遍历字典键值,字典无序. for eleK ,eleV in person.items(): print eleK print eleV person.keys() 所有key person.values()