#!/usr/local/bin/python3
# -*- coding:utf-8 -*- f=open("test_1",'r',encoding="utf-8") #'r'代表读文件
'''
#----------读文件----------
print(f.tell()) #tell计数按照字符来计数
print(f.read(5)) #读前5个字符,注意此时文件指针已经到第5个
print(f.tell())
data=f.readline() #读取下一行
print(data)
print(f.tell())
f.seek(10) #文件指针指向指定的值(即第几个字符)
print(f.readline())
print(f.tell()) #----------刷新---------- #装逼方法
import sys,time
for i in range(20):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1) #----------写文件----------
f1=open("test_2",'w',encoding="utf-8")#'w'代表写文件
f1.write("hello") # 注:若test_2文件已存在,那么调用f2.write()方法会将test_2文件中的内容覆盖掉
#但 若test_2文件不存在,那么write()方法会创建一个新文件 f2=open("test_2",'a',encoding="utf-8") #f2是文件句柄,'a'代表append,即追加且不覆盖原文件内容,但不可读
# 'a+'代表追加读写,即追加且不覆盖源文件内容,可读
f2.write("我爱北京天安门...\n")
f2.write("天安门上太阳升\n") #----------读取文件指定行数---------
for i in range(5): #读取文件前5行
print(f.readline()) #readline():读取文件的下一行 #----------遍历文件----------
#---low的写法---
for index,line in enumerate(f.readlines()): #f.readlines():将文件的每行作为一个元素,存入列表中
# 注:readlines()只适合读小文件,因为需要将文件作为一个列表放到
# 内存中
if index==9: #enumerate:将行标取出
print("---------------")
print(line.strip()) #去除列表元素中的空格以及换行 #---高大上的写法---
count=0
for line in f:
print(line.strip())
count+=1
if count==9:
print("---------") #----------截断----------
f3=open("test_1",'a',encoding="utf-8")#'w'代表写文件
#f2.truncate(10) #从文件的第十个字符开始截断(一个空格算一个字符),后面的内容全部消失
#---指定截断(以下方法不可行)---
f3.seek(10) #将文件指针指向第十个字符
f3.truncate(20) #期望从第十个字符开始截断,这样会保留前三十个字符
#但实际 文件指针 对truncate()方法不起作用,该方法仍旧是从头开始计数 #----------读写----------
f4=open("test_1",'r+',encoding="utf-8") #'r+'代表读写文件
print(f4.readline().strip())
print(f4.readline().strip())
print(f4.readline().strip())
print(f4.tell())
f4.write("-----------------------")
print(f4.readline().strip()) #注:虽然期望将内容写入第四行,但运行后发现插入位置随机
#但其实事实就是这样的 #----------写读1----------
f5=open("test_1",'w+',encoding="utf-8") #'w+'代表写读文件
print(f5.readline().strip())
print(f5.readline().strip())
print(f5.readline().strip())
print(f5.tell())
f5.write("-----------------------")
print(f5.readline().strip()) #注:期望将内容写入第四行,但运行后发现原文件中内容被新写入的内容
#覆盖了
#----------写读2----------
f6=open("test_1",'w+',encoding="utf-8") # 期望先写入四行,然后将文件指针退回到第十个字符上,然后打印下一行的内容
#并在此时写入最后一行,但实际运行发现:我们所期望写入的位置并没有新的内容
#新内容被写在了最后一行
f6.write("-----------1------------\n")
f6.write("-----------2------------\n")
f6.write("-----------3------------\n")
f6.write("-----------4------------\n")
print(f6.tell())
f6.seek(10)
print(f6.readline())
f6.write("----------hello---------\n")
f6.close() #----------二进制读文件----------
f7=open("test_1",'rb') #'rb'代表二进制读文件 注:此时后面encoding不能是"utf-8"
print(f7.readline()) #----------二进制写文件----------
f8=open("test_1",'wb') #'wb'代表二进制写文件 注:此时后面encoding不能是"utf-8"
f8.write("hello world\n".encode()) #注:encode ()中不指定具体的字符集,则以'utf-8'为默认
f8.close()
'''

  

python中的文件操作小结1的更多相关文章

  1. python中的文件操作小结2

    ''' #-----------文件修改---------- f=open("test_1",'r',encoding="utf-8") f2=open(&qu ...

  2. 关于Python中的文件操作(转)

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  3. python学习之【第十一篇】:Python中的文件操作

    1.前言 在Python中,对文件的操作主要遵循以下流程: 打开文件,得到文件句柄并赋值给一个变量 通过文件句柄对文件进行操作 关闭文件 2.打开文件 使用open函数,可以打开一个已经存在的文件,或 ...

  4. 【Python】解析Python中的文件操作

    目录结构: contents structure [-] 简介 Python中的文件类型 内置函数的文件操作 open()函数 Mode 创建文本文件 读取文本文件 循环文件对象 关闭文件 With语 ...

  5. 说说Python 中的文件操作 和 目录操作

    我们知道,文件名.目录名和链接名都是用一个字符串作为其标识符的,但是给我们一个标识符,我们该如何确定它所指的到底是常规文件文件名.目录名还是链接名呢?这时,我们可以使用os.path模块提供的isfi ...

  6. 2018.8.6 Python中的文件操作

    前言: 使用python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄.然后通过文件句柄就可以进行各种操作了,根据打开方式的不同能够执行的操作也会有相应的差异. 打 ...

  7. Python 中关于文件操作的注意事项

    文件操作 #打开文件 f = open('要打开的文件路径',mode = 'r/w/a', encoding = '文件原来写入时的编码') #操作 data = f.read() #读取 f.wr ...

  8. [19/10/16-星期四] Python中的文件操作

    一.打开文件 # open(file, mode='r', buffering=-1, encoding_=None, errors=None, newline=None, closefd=True, ...

  9. python中的文件操作

    文件操作时,有'r','w','a'不同的操作类型,其中'r'只能读文件,seek(),tell()函数定位读的起始地方.'w'会清空文件内容然后写文件,seek(),tell()函数定位写的起始地方 ...

随机推荐

  1. BZOJ4503: 两个串(bitset字符串匹配)

    题意 题目链接 Sol Orz xudyh F个毛T啊..直接bitset一波就赢了啊...(虽然复杂度很假) 就是记录匹配串中每个元素出现的位置,将第\(i\)个位置的bitset右移\(i\)位后 ...

  2. Android监听安装卸载

    需要通过receiver来监听: 在AndroidManifest.xml文件中注册的receiver中必须加上<data android:scheme="package"/ ...

  3. 厌烦了写findViewById 试试ButterKnife吧

    先上官网 http://jakewharton.github.io/butterknife/  和 https://github.com/JakeWharton/butterknife 配置开发环境 ...

  4. seleenium与Vs结合

    Vs 自带自动化测试录制工具.selenium则是开源的大众工具.在使用发现vs 自带的工具录制方便,但是修改很难.但是可以提供后续的BUG管理和邮件通知,自动构建等功能.selenium在.net平 ...

  5. 如何查询mysql中date类型的时间范围记录?

    java date类型 会不会自动转换 mysql date类型? 抹除掉后面 时间 ? 时间不是查询条件?

  6. linux下使用iperf测试服务器带宽

    准备工具 1.2台Linux服务器(要求其中至少1台主机为腾讯云主机,另外一台任意主机均可,确保2台主机可以互相访问即可)2.Iperf软件为专业网络性能测试工具. 测试目标 上海地区主机外网带宽是否 ...

  7. 如何让.NET Core应用的配置与源文件保持同步?

    配置的同步涉及到两个方面:第一,对原始的配置文件实施监控并在其发生变化之后从新加载配置;第二,配置重新加载之后及时通知应用程序进而使后者能够使用最新的配置.接下来我们利用一个简单的.NET Core控 ...

  8. PointCNN 论文翻译解析

    1. 前言 卷积神经网络在二维图像的应用已经较为成熟了,但 CNN 在三维空间上,尤其是点云这种无序集的应用现在研究得尤其少.山东大学近日公布的一项研究提出的 PointCNN 可以让 CNN 在点云 ...

  9. 2017.11.9 如何利用JS做登陆验证界面

    ()案例----JavaScript实现输入验证 需要验证的表单输入域和要求 用户名不能为空,是否符合规定的格式 密码长度是否超过6,两次密码输入一致 邮箱地址:邮箱地址必须符合邮箱形式 ~~~注意提 ...

  10. spring中使用i18n(国际化)

    简单了解i18n i18n(其来源是英文单词internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件 ...