三.文件的基本应用

Posted huiguizhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三.文件的基本应用相关的知识,希望对你有一定的参考价值。

1.

技术图片

1.1

一个字节(bety / B)8位, 一位一个bit / b即比特。即 1KB=1024B , 1B=8b,计算机存储信息的最小单位,称之为位(bit,又称比特)

1.2 读取方式( "r" , 模式,只读且只能读一遍,默认‘r‘模式)

#with模块执行结束后,自动关闭文件
with open(yesterday,encoding=utf-8) as file_objict:#Windows默认编码gbk,所以申明打开编码方式 contents = file_objict.read() print(contents) >>3.1415926535 >> 8979323846 >>我喜欢踢足球
file_object = open(yesterday,r,encoding=utf-8).read()#文件句柄
print(file_object)
file_object.close()
file_object = open(yesterday,r,encoding=utf-8).readlines()
for i in file_object:
    print(i.rstrip())#去掉右边空格
file_object.close()

只读前几行,或指定的几行

file_object = open(yesterday,r,encoding=utf-8)
for index,line in enumerate(file_object.readlines()):#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据下标和数据
    if index == 2:#前两行,index的默认值是0
        print("------")#第三行会被替换
        continue
    print(line.strip())

截断,f.truncate(),只保留指定个数的元素,移动光标没用,还是从头截取

f = open("yesterday","a",encoding="utf-8")
f.truncate(10)

rand()整个内容的一个字符串,也可以添加个数,返回具体几个字符

randline()返回下一行内容的字符串

readlines()整个文件的列表

f.tell() 把指标位置打印,一开始为0

f.seek(0)把指标返回到开始,也可返回具体多少字符

f.encoding 打印其编码方式,是以utf-8的形式打开的

f.flush() 刷新,可不缓存直接存

import sys ,time
for i in range(20):#实时打印
    sys.stdout.write("#")#标准输出
    sys.stdout.flush()
    time.sleep(0.1)

 

如果文件过大,则使用readlines()则太慢

file_object = open(yesterday,r,encoding=utf-8)
count = 0
for line in file_object: #file_object 已被变为迭代器,无法取下标
    if count == 2:
        print("-----------")
        count += 1
        continue
    print(line)#打印一行,删除一行,不在内存中
    count += 1
file_object.close()

1.3 "w"模式,创建或清零,如果有原文件会被清零,谨慎操作

file_object = open(yesterday,w,encoding=utf-8)#原文件被清零
file_object.write("I see you 
")
file_object.write("我站在")

1.4 "a" 模式,追加,只可以追加,不可读(相当于append)

file_object = open(yesterday,a,encoding=utf-8)
file_object.write("
3.1415926")

 1.5 “r+”, "w+","a+","rb","wb",“rU”

 r+ ,读和追加,只能在最后追加

w+,写读,是创建一个新文件吧,并写入,如果再写入,还是最后追加(不常用)

a+ ,追加 读 写,

rb ,以二进制文件读取

f = open("yesterday","rb")
print(f.readline())
>>bI see you 
#bytes 类型

wb,创建一个新文件,如果有内容则清零,以二进制写入

f = open("yesterday","wb")
f.write("hello
".encode())#hello是字符串类型,要encode一下,转换成字节码类型

rU,读取时,可以将      自动转换成  ,常用与linux 与 windows 文件转换

1.6 替换

f = open("yesterday","r",encoding="utf-8")
f_new = open("new","w",encoding="utf-8")
for line in f :
    if "old" in line:
        line = line .replace("old","new")
    f_new.write(line)
f.close()
f_new.close()
with open("yesterday","r",encoding="utf-8") as f ,    open("new","w",encoding="utf-8") as f_new :
    for line in f :
        if "old" in line:
            line = line .replace("old","new")
        f_new.write(line

1.7 异常处理

file_name = input("请输入文件名:")
try:
    with open(file_name,"r",encoding="utf-8") as f :#不
        contents = f.read()
        words = contents.split()
        w_num = len(words)
        print("The file" + file_name +"has about " + str(w_num) + "	words")

except FileNotFoundError:
    msg = "对不起,这个文件" + file_name + "不存在"
    print(msg)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于三.文件的基本应用的主要内容,如果未能解决你的问题,请参考以下文章

每当我尝试从 Fragment java 文件中更改片段的某些属性时,应用程序就会崩溃

bbs项目应用三

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

如何从片段外部清除/重置地图?

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?