Python No.19_文件操作(增删改查)

内容摘要
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hugolinhj """ 对文件的操作流程 1、打开文件、得到文件句柄并赋值给一个变量 2、通过句柄对文件进行操作 3、关
文章正文
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hugolinhj

"""
对文件的操作流程
1、打开文件、得到文件句柄并赋值给一个变量
2、通过句柄对文件进行操作
3、关闭文件
"""
"""
data = open("yesterday",encoding="utf-8").read()    #是指将内存复制到变量来修改,无意义,正常格式应该为以下
#windows默认编码格式是GBK,py是utf-8,要用encoding指定‘utf-8’打开。
f = open("yesterday","r",encoding="utf-8")
data = f.read()
data2 = f.read()
data2 = f.read()
print(data)
print("data2 ===>",data2)
#这里不打因data2不是没有打印,而是文件的所读光标已经指到文件底部,没能在指会文件首部。

w = open("yesterday2","w",encoding="utf-8")#文件句柄,就是该文件的内存对象。包含文件名、字符集、大小、描述。规范:加"r"默认不加为读模式。注!!!:’w‘直接创建空白文件。
w.write("wo ai BeiJingTianAna
")
w.write("wo ai wulingmin")
print(w)

a = open("yesterday3","a",encoding="utf-8")# 加"a"是append,追加的意思,不能读。
a.write("wo ai BeiJingTianAna
")
a.write("wo ai wulingmin
")
print(a)

a.close()
#关闭文件
w.close()
f.close()

f = open("yesterday","r",encoding="utf-8")
for i in range(5):
    print(f.readline())
#读一行,用for 语句读5行

f = open("yesterday","r",encoding="utf-8")
for index,line in enumerate(f.readlines()):#找下标 index。
    if index ==  1:
        print("------------------")
        continue # 不操作,重新判断。
    elif index == 11:
        print("==================")
        break #退出循环。
    print(line.strip())
#打印文件中跳过第2行以及到第12行退出。
#注:readlines只能读小文件,不建议读大文件,因为是直接全部读取到内存中,占内存大。


#当想打印文件中的行数,建议采用以下方式:
#标准:
f = open("yesterday","r",encoding="utf-8")
count = 0
for line in f:   #这种是一行一行读取到内存,并一行一行从内存中删除。 使f变成迭代器。
    if count == 9:
        print("++++++++++++")
        count += 1
        continue
    else:print(line)
    count +=1
#打印文件’yesterday‘,其中第10行,不打印。
f.close()

"""

f = open("yesterday","r",encoding="utf-8")
print(f.tell())
#打印当前文件所打印的指针。
print(f.read(5))
#打印当前文件的前5个字符。’Yeste‘
print(f.readline())
#打印当前文件的一行。’rday, all my troubles seemed so far away‘
print(f.tell())
#打印当前文件所打印的指针。
f.seek(0)
#将指针指回0。
print(f.readline())
#打印当前文件的一行。#’Yesterday, all my troubles seemed so far away‘

print(f.encoding)
#打印文件字符编码

print(f.fileno())
#打印操作系统内部接口的去读文件的编号。

print(f.name)
#打印文件名

print(f.seekable())
#判断文件是否为可移动指针。 原因:文件不能移动指针,如:终端、驱动等,因为在linux中一切皆为文件,但驱动文件等是无法移动指针的。

print(f.writable())
#判断文件是否可读。

print(f.flush())
#因为存硬盘前,会先让内存存到缓存,缓存满了后再放入硬盘。flush是及时放入硬盘。
#例:
import sys, time
for i in range(50):
    sys.stdout.write("#")  # sys.stdout 打印不换行。
    sys.stdout.flush()  # 及时打印。不放缓存条。
    time.sleep(0.05)

print(f.closed)
#判断文件是否被关闭。


f = open("yesterday2","a",encoding="utf-8")
print(f.truncate(10))
#截断文件‘yesterday2’10个字符。


f = open("yesterday","r+",encoding="utf-8")#"r+"可读,和追加。读写
print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell())#打印光标
f.write("----------diao-----------") #追加是文件的最后。
print(f.readline())
#



f = open("yesterday","w+",encoding="utf-8") #"r+"可读,和追加。写读,会先创建一个文件,没什么用
f.write("----------diao-----------") #追加是文件的最后。
f.seek(10)
f.write("----------diao-----------") #追加是文件的最后。


f = open("yesterday","rb") #rb是指二进制文件。二进制不能传encoding传输。当网络传输时用二进制。
print(f.readline())


f = open("yesterday","wb") #rb是指二进制文件。二进制不能传encoding传输。当网络传输时用二进制。二进制写
f.write("hello binary
".encode())





代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!