# !/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\n') w.write('wo ai wulingmin') print(w) a = open('yesterday3','a',encoding='utf-8')# 加'a'是append,追加的意思,不能读。 a.write('wo ai BeiJingTianAna\n') a.write('wo ai wulingmin\n') 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\n'.encode())
当前位置:
首页 > temp > python入门教程 >
-
Python No.19_文件操作(增删改查)
出处:https://www.cnblogs.com/mingyw/p/14148777.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数