Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

  本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!

  • 标准输入输出
    一、输入
      在sublime中这个时候需要安装SublimeREPL插件。 Ctrl+shift+p 键入 install packages,再继续键入 SublimeREPL 安装即可然后每次编译运行的操作是:tools->sublimeREPL->python->python-Run current file。点击之后会出现新的页面*REPL*[python],作为新的控制台,可以输入输出互动。可查看另一篇,传送门:Python基础笔记系列四:工具的安装与配置
    1)使用raw_input()函数

    1 buff = raw_input(‘please input :‘)  #不管输入什么都是字符串类型
    2 print buff
    3 print type(buff)

    2)使用input()函数

    1 buff2 = input(‘please input :‘)  #输入如果为数字就是int型
    2 print buff2
    3 print type(buff2)

    二、输出

      最简单的输出方法是print语句,你可以给它传递零个或多个逗号隔开的表达式,或者使用占位符。
    例子:

    1 num =200
    2 print 1,3,5,‘num=%d‘%num

    输出:

    1 1 3 5 num=200
  • 文件读写
    一、打开和关闭文件
      首先要对文件进行操作就要先打开一个文件,以创建file对象,然后才能对它进行读写等操作。

    #1.打开:使用open函数
    #2.关闭:使用close函数:刷新缓冲区里任何还没有写入的信息,并关闭文件,之后便不可再对该文件进行读写。
    # 在close之前也可以调用flush方法刷新缓冲区
    # fil = open(文件名,打开文件的模式,缓冲区), 其中后面两个参数可以省略,模式有读(r)、写(w)、追加(a)等,
    #缓冲区(等于0:不会寄存,等于1:寄存一行,大于1:寄存区的缓存大小,小于0:系统默认缓冲区大小)
    二、读取文件
      在以‘r’模式打开文件以后可以调用read函数一次性将文件里的内容全部读取出来,也可以每次指定读取多少字节。
    例子:

    1 fil1 = open(‘yyc.txt‘,‘r‘,-1) #读 文件必须存在(目前是当前目录下)
    2 # buff3 =fil1.read()   #一次性读完
    3 buff4 =fil1.read(100)  #读100个字节
    4 # print buff3+","+buff4  #这里如果先read()再read(100) 则buff4为空,因为read()已经读完整个文件了,就像c中指针已经到最后了。可以通过fil1.tell()函数打印指针当前位置
    5 print buff4
    6 fil1.close()  #关闭文件

    三、写文件
      可以通过‘w’的方式打开文件,就可以创建一个可以写的文件对象。如果文件存在则清空文件再写,如果文件不存在则创建。
    例子:

    1 fil = open(‘yyc.txt‘,‘w‘,-1) #写 如果文件存在则清空文件再写,如果文件不存在则创建
    2 fil.write("123456hello")
    3 fil.flush()   #写完最好刷新一下
    4 fil.close()   #关闭文件

    四、读写文件r+、w+
      ‘r‘模式打开的文件创建的对象只能用read函数读取文件的内容,‘w’模式打开的文件又只能往里写内容。如果想实现在一个文件关闭前既可以往里写内容,又可以读取内容怎么办呢?这就是‘r+’和‘w+’所实现的功能。但是个人还是建议在一个文件打开关闭期间要么读要么写,因为这样子会出现很奇怪的问题,可仔细阅读下面的例子:
    ‘w+’模式例子1:如果在打开文件和关闭文件之间先执行写操作然后读操作,最后读出的内容为空。

    1 #先写后读
    2 fil5 = open(‘yyc.txt‘,"w+",0)  #既写又读  如果文件存在则先清空文件,如果文件不存在则创建
    3 fil5.write(‘b‘)  #先写入
    4 fil5.flush()   #写完最好刷新一下
    5 buff2 =fil5.read()   #因为此时指针指向写入内容的后面,所以内容为空
    6 print ‘w+模式先写后读: ‘+buff2  #读出的内容是未覆盖的内容,这里为空啦,因为此时指针指向写入内容的后面,即文档末尾
    7 fil5.close()

    ‘w+’模式例子2:如果在打开文件和关闭文件之间先执行读操作然后写操作,读出的内容也为空。

    1 #先读后写
    2 fil5 = open(‘yyc.txt‘,"w+",0)  #既写又读  如果文件存在则先清空文件,如果文件不存在则创建
    3 buff2 =fil5.read()   #由于清空了文件,所以内容为空
    4 print ‘w+模式先读后写: ‘+buff2  #读出的内容是未覆盖的内容,这里还没写写入,所以为空
    5 fil5.write(‘123456‘)  #
    6 fil5.flush()   #写完最好刷新一下
    7 fil5.close()

    从上面两个例子可以看出,在以‘w+’模式打开文件并同时执行读写操作时,不管是先写后读还是先读后写,读出的内容都是空,但是其中的道理各有不同哦(代码注释里差不多也清楚了)。
    ‘r+’模式例子1:如果在打开文件和关闭文件之间先执行写操作然后读操作,读出的内容是写入后未覆盖的内容

    1 #先写后读
    2 fil3 = open(‘yyc.txt‘,"r+",-1)   #既读又写 从文件开始位置覆盖内容
    3 fil3.write(‘66666‘)
    4 fil3.flush()   #写完最好刷新一下
    5 buff2 = fil3.read()     #必须先刷新再做读操作,
    6 print ‘r+模式先写后读:‘+buff2   #读出的内容是未覆盖的内容,因为指针在写入文件后指向了写入后的位置,即文档末尾
    7 fil3.close()

    ‘r+‘模式例子2:如果在打开文件和关闭文件之间先执行读然后写操作,运行报错。

    1 #先读后写(报错)
    2 # fil3 = open(‘yyc.txt‘,"r+",-1)   #既读又写 从文件开始位置覆盖内容
    3 # buff2 = fil3.read()     #先读
    4 # print ‘r+模式先读后写:‘+buff2  #输出的内容是覆盖后的内容,也就是说他执行过write了?很奇怪,并且报错
    5 # # fil3.flush()  #加不加效果一样
    6 # fil3.write(‘66666‘)#后写
    7 # fil3.flush()   #写完最好刷新一下
    8 # fil3.close()

    五、追加写入文件a,a+
      如果想保留文件现有内容,只是把新内容加入原有文件的尾部或者说新增文件内容而不影响原有内容,则可以用a或者a+模式。
    ‘a+’模式例子1:如果在打开文件和关闭文件之间先执行写操作然后读操作,最后读出的内容为空。

    1 #先写后读
    2 fil6 = open(‘yyc.txt‘,‘a+‘,0) #追加 如果文件存在则追加内容,如果文件不存在则创建
    3 fil6.write(‘1234‘)   #
    4 fil6.flush()   #写完最好刷新一下 ,查看文件写入成功
    5 print ‘a+模式先写后读: ‘+fil6.read() #但读出来是空,因为此时指针指向写入内容的后面
    6 fil6.close()  #关闭文件

    ‘a+’模式例子2:如果在打开文件和关闭文件之间先执行读操作然后写操作,读出的内容也为为空。

    1 #先读后写
    2 fil6 = open(‘yyc.txt‘,‘a+‘,0) #追加 如果文件存在则追加内容,如果文件不存在则创建
    3 print ‘a+模式先读后写: ‘+fil6.read() #但读出来是空
    4 fil6.write(‘1234‘)   #
    5 fil6.flush()   #写完最好刷新一下 ,查看文件写入成功
    6 fil6.close()  #关闭文件

    综上6个例子,其实r+,w+,a+有异曲同工之处,也就是文件指针指向的位置,决定了读写的内容。只要理解了指针在文件中的位置,就不难理解文件的读写啦。

  • 文件的基本属性

    下面的例子中展示了文件的基本属性。
    例子:

    1 #-----------文件属性-----------
    2 fil = open(‘yyc.txt‘,‘a‘,-1) #追加
    3 print fil.mode   #返回被打开文件的访问模式
    4 print fil.closed #是否已经关闭
    5 print fil.name   #返回被打开文件的名字
    6 print fil.softspace #

    输出:

    1 a
    2 False
    3 yyc.txt
    4 0
  • 文件指针(seek方法)
      前面说到w+模式的先写后读,打开文件为w+模式下时,如果文件存在则先清空文件,如果文件不存在则创建,在先写入文件后发现指针指向写入内容的后面,再来读取文件内容,则读出来的内容是空的,我们可以通过seek()函数将指针指向文件开始的位置再读。
    例子:
    1 fil5 = open(‘yyc.txt‘,"w+",0)  #既写又读  如果文件存在则先清空文件,如果文件不存在则创建
    2 fil5.write(‘ppppppppp‘)  #先写入内容
    3 fil5.flush()   #写完最好刷新一下,注意:此时指针在文档末尾
    4 fil5.seek(0)   #移动指针到文档开头
    5 buff2 =fil5.read()   #由于清空了文件,所以内容为空
    6 print ‘w+模式先写再移动指针最后读: ‘+buff2  #读出的内容是刚刚写入的内容
    7 fil5.close()

    输出:

    1 w+模式先写再移动指针最后读: ppppppppp
  • 文件的删除和重命名
      注意:需要导入os包或os包里的相应方法
    1.重命名用os.rename(curret_file_name,new_file_name)方法:两个参数,当前文件名和新文件名
    2.删除文件用os.remove(file_name)方法:一个参数,需要删除的文件名

      
      

      
      


      

原文地址:https://www.cnblogs.com/hyyq/p/8972595.html

时间: 2024-10-26 23:14:11

Python基础笔记系列十一:标准输入输出、文件读写和指针等操作的相关文章

Python基础笔记系列十:模块

本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 模块 #1.类比于java中的jar包,模块能让你能够有逻辑地组织你的Python代码段.#2.把相关的代码分配到一个模块里能让你的代码个更好用,更易懂.#3.模块也是Python对象,具有随机的名字属性用来绑定或引用.#4.简单来说,模块就是一个保存了Python代码的文件.模块能自定义函数,类和变量.模块里也能包含可执行的代码. 模块引入python提供了很多第三方的

Python基础教程系列:九、文件操作

一.open()函数 open()以及file()(open()与file()等价,可以任意替换)提供了初始化输入/输出(I/O)操作的通用接口.open()函数成功打开一个文件后就会返回一个文件对象,说白了你就可以接着读写了,否则就bug了. 语法:file_object = open(file_name, access_mode='r', buffering=-1) 第一个参数是文件名或者路径(绝对或相对路径),第二个参数叫文件打开的模式,不写时默认是'r'模式.'r'模式是只读模式.'w'

Python学习笔记(二十三)文件读写

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431917715991ef1ebc19d15a4afdace1169a464eecc2000 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求

Python基础笔记系列四:工具的安装与配置

本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 一开始是没有打算写工具这篇的,后来发现在某些情况下会遇到一些奇怪的问题,这里记录一下. 环境基础我是用的是windows 10操作系统python版本:python2.7  地址-->https://www.python.org/downloads/ Sublime Text3:地址-->https://www.sublimetext.com/ 安装python的坑:直

Python基础笔记系列三(1):list列表

本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python中的list列表是一种序列型数据类型,一有序数据集合用逗号间隔用方括号括起来,和字符串一样可以通过索引index和切片来访问某个元素或子列表. 元组相当于一个只读的列表,它的元素不可修改. 字典是一种键值对. list列表可以类比于其它语言(如,C语言)的数组,其起始下标为也为0.1.列表的索引访问 1)通过list_name[index]来访问,每个列表的起

Python基础笔记系列十三:socket网络编程

本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监听的ip和端口一致),服务端对客户端进行指定Ip和端口的监听,实现接收客户端发送的数据以及对客户端发送数据. 使用原生socket主要运用到python的socket模块,直接使用自己的代码进行socket对象的创建.ip和端口的绑定.接收和发送数据等操作.服务端:server1.py 1 #inc

java基础解析系列(十一)---equals、==和hashcode方法

java基础解析系列(十一)---equals.==和hashcode方法 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer缓存及装箱拆箱 java基础解析系列(三)---HashMap原理 java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现 java基础解析系列(五)---HashMap并发下的问题以及HashTable和CurrentHashMap的区别 j

标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型

函数声明: 1.隐式声明:在没有声明的情况下,系统可根据参数类型判断去调用函数(有可能出错) 2.显式声明:声明在被调用之前,如:double add(double,double);  函数声明参数可只写类型,不需要写函数体. 文件操作: fopen  --打开文件,FILE *pFile=fopen("a.txt","w"); fopen的打开模式: r:只能读,要求文件存在 r+:可读可写,要求文件存在 w:只能写,创建文件,如果文件存在则先删除旧文件 w+:可

Python学习笔记系列之000:Python简介

一.Python是什么? Python时候全球4大最流行的编程语言之一,因为其语法简洁.功能强大,目前已广泛应用于人工智能.云计算开发.大数据开发.数据分析.科学运算.网站开发.爬虫.自动化运维.自动化测试.游戏开发金融分析等领域. 二.Python的优点 1. Python的定位是"优雅"."明确"."简单". 2. 开发效率非常高. Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持