文件IO

#文件的基本操作

1.在python中你可以用file对象做大部分的文件操作

2.一般步骤:

  先用python内置的open()函数打开一个文件,并创建一个file对象,

  然后调用相关方法进行操作

语法:

file_object = open(file_name[,acess_mode][,buffering])

file_name变量是一个包含了你要访问的文件名称的字符串值

access_mode决定了打开文件的模式:只读,写入,追加等.这个参数是非强制的,默认文件访问模式为只读(r)

buffering:如果buffering的值设为0,就不会有寄存.如果buffering值取1,访问文件时会寄存

  如果将buffering的值设为大于1的整数,表明了这就是寄存区的缓冲大小,如果取负值,寄存区的缓冲大小则为系统默认

不同模式打开文件的完全列表:

  

file对象的属性

一个文件被打开后,你有一个file对象,你可以得到有关文件的各种信息

以下是和file对象相关的所有属性的列表:

file.closed  返回true如果文件已被关闭,否则返回false

file.mode  返回被打开文件的访问模式

file.name  返回文件的名称

file.softsapce  如果用print输出后,必须跟一个空格符,则返回false,否则返回true

doc = "D:\python workspace\log.txt"

print("演示open")
fo = open(doc,'w') #w代表写入
print("文件名是",fo.name)
print("是否关闭了文件",fo.closed)
print("打开方式",fo.mode) print("\n演示close")
fo = open(doc,'w')
print("文件名是",fo.name)
#关闭打开的文件
fo.close()
print("是否关闭了文件",fo.closed) print("\n演示写入")
fo = open(doc,'w')
fo.write("好与坏")
#关闭打开的文件
fo.close() '''
w 换成 wb,会报错
TypeError: 'str' does not support the buffer interface
''' print("\n演示read")
#打开一个文件
fo = open(doc,"r+")#r+ 读写
str = fo.read()
print("文件中的内容是",str)
#关闭文件
fo.close()

结果:

演示open
文件名是 D:\python workspace\log.txt
是否关闭了文件 False
打开方式 w 演示close
文件名是 D:\python workspace\log.txt
是否关闭了文件 True 演示写入 演示read
文件中的内容是 好与坏

文件名/t会有转义,三种写法避免:

fileName = r"D:\test1\test2\test.txt"  加r

filename = "D:\\test1\\test2\test.txt"  加双\\

filename = "D:/test1/test2/test.txt"  \改成/  (推荐这种)

文件定位

1.tell()方法告诉你文件内的当前位置

2.seek(offset[,where])方法改变当前的位置

offset变量便是要移动的位数.where变量置顶开始移动的参考位置

where为0表示文件开始处,这是默认值;1表示当前位置;2表示文件结尾

#打开一个文件
doc = "D:/python workspace/log.txt"
fo = open(doc,"r+")
str = fo.read()
print("文件中的内容是:",str)
#查找当前位置
position = fo.tell()
print("当前位置:",position) #把指针再次重新定位到文件开头
position = fo.seek(0,0)
str = fo.read(2)#读两个字符
print("文件中的内容是:",str)
str = fo.read(-1)#读光标之后的全部
print("文件中的内容是:",str) #关闭打开的文件
fo.close()

结果:

文件中的内容是: 好与坏 坏与好
当前位置: 13
文件中的内容是: 好与
文件中的内容是: 坏 坏与好

练习:以w方式打开文件,通过write和writelines分别写入内容

file.write(str)  将字符串写入文件,没有返回值

file.writelines(sequence)  向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符

#打开一个文件
doc_1 = "D:/python workspace/log1.txt"
fo = open(doc_1,"w")
fo.write("试试怕什么,又不会怀孕1") fo.writelines(["试试怕什么1\n","又不会怀孕2"]) #关闭文件
fo.close()

write是写入一行

writelines可以写入多行,用\n分行

结果:

以w+方式打开文件,写两行数据,读取文件全部内容

doc_2 = "D:/python workspace/log2.txt"
fo = open(doc_2,"w+")
fo.writelines(["试试怕什么1\n","又不会怀孕2"]) #查看当前位置
position = fo.tell()
print("当前位置:",position) #重置位置
#把指针再次重新定位到文件开头
position = fo.seek(0,0) #读取文件
str1 = fo.read()
print(str1) #readlins()读出是列表
#str2 = fo.readlines()

#for i in str2:
#  print(i) #关闭文件
fo.close()

第一次写的时候,发现打的空,

加入查找当前位置语句,发现写完后,光标在最末位,so重置到初始位置后,再读出所有文件

结果:

当前位置: 24
试试怕什么1
又不会怀孕2

清空一个文件

file.truncate([size]):截取文件,截取的字节通过size置顶,默认为当前额外年间位置

如果没有指定size则会从当前位置截取,也就相当于都删除了

python基础-文本操作的更多相关文章

  1. Python基础--文件操作和集合

    这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 ...

  2. python基础 — 文件操作

    读取键盘输入 Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: raw_input input raw_input函数 raw_input([prompt]) 函数从 ...

  3. python基础-文件操作

    一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...

  4. python基础知识---操作文件

    一.打开文件  open()函数 open函数返回一个文件对象. 用法:open('文件名','模式') 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内 ...

  5. 第七章:Python基础のXML操作和面向对象(一)

    本課主題 XML介绍与操作实战 shutil 模块介绍与操作实战 subprocess 模块介绍与操作实战 初探面向对象与操作实战 本周作业 XML介绍和操作实战 對於浏览器返回的字符串有以下幾種: ...

  6. python基础-文件操作(10)

    一.什么是文件 等等这些都叫做文件,各种格式的.但不仅仅限制于这些. 二.文件的作用 大家应该听说过一句话:“好记性不如烂笔头”. 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了 ...

  7. 第3章 Python基础-文件操作&函数 文件操作 练习题

    一.利用b模式,编写一个cp工具,要求如下: 1. 既可以拷贝文本又可以拷贝视频,图片等文件 2. 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target ...

  8. python基础--文件操作实现全文或单行替换

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...

  9. python基础--字符串操作、列表、元组、文件操作

    一.变量及条件判断 1.字符串.布尔类型.float.int类型,None都是不可变变量 2.字符串是不可变变量,不可变变量就是指定义之后不能修改它的值 3.count +=1和count=count ...

随机推荐

  1. 【Python】创建和使用类

    面向对象编程是最有效的软件编写方法之一 创建Dog类 class Dog(): '''一次模拟小狗的简单测试''' def __init__(self,name,age): self.name = n ...

  2. Ubuntu12安装RobotFramework

    安装Python Ubuntu默认已安装 安装pip wget https://bootstrap.pypa.io/get-pip.py python get-pip.pysudo apt-get i ...

  3. Java 加解密技术系列之 DES

    序 前几篇文章讲的都是单向加密算法.当中涉及到了 BASE64.MD5.SHA.HMAC 等几个比較常见的加解密算法. 这篇文章,以及后面几篇.打算介绍几个对称加密算法.比方:DES.3DES(Tri ...

  4. leetCode 83.Remove Duplicates from Sorted List(删除排序链表的反复) 解题思路和方法

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  5. APU的Vsense引脚的作用

    JACK学习文档推荐: 开关电源PCB布局注意事项 开关电源PCB布线注意事项 一.Sense电压检测(FB) “Sense+”和“Sense-”,就是四线制中的电压检测线,high-sense 和l ...

  6. 25:坐标移动CoordinateMove

    题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: 合 ...

  7. wifi认证Portal开发系列(四):portal协议的java封装

     一.报文封装类 AbstractPortalMsg.java Portal协议数据报文封装类 package org.yoki.edu.common.protocol.portal.msg; imp ...

  8. 开启Java远程调试

    在JDK启动时,加入 -Xrunjdwp:transport=dt_socket,address=9900,server=y,suspend=n -Dcom.sun.management.jmxrem ...

  9. IIS 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。 HTTP 错误 500.19

    因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改.运行命令行 %windir%\system32\inetsrv\appcmd unlock conf ...

  10. Maven中央仓库地址(实用版)

    最近做项目的时候,一直发现常用的oschina maven源一直都没有反应,后面发现原来oschina竟然关闭了maven源服务,后面经同事推荐了阿里云的maven源,这速度杠杠的 Maven 中央仓 ...