# !/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())
#复印文件中绕过第二行及其到第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))
#复印当今文件的前五个标识符。’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())





文章来源于网络,如有侵权请联系站长QQ61910465删除
本文版权归趣营销www.SEOgUrublog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ卍61910465