python学习11 -文件,流

打开文件

  语法如下:open(name,[module[,buffering]]) ,模式 和缓冲参数都是可选的

f = open(r‘C:\TEXT\somefile.txt‘)#如果文件不存在

Traceback (most recent call last):
File "<pyshell#64>", line 1, in <module>
f = open(r‘C:\TEXT\somefile.txt‘)
IOError: [Errno 2] No such file or directory: ‘C:\\TEXT\\somefile.txt‘

  module  参数常用值

‘r‘ 读模式
‘w‘ 写模式
‘a‘ 追加模式
‘b‘ 二进制模式(可添加到其他模式中使用)
‘+‘ 读/写模式(可添加到其他模式中使用)

  缓冲

    open  函数的第3个参数(可选)控制着文件的缓冲。

    0 : 无缓冲,所有读写操作直接针对硬盘

    1 : 有缓冲,用内存替代硬盘、

基本文件方法

  读和写 :文件(或流)最重要的方法就是提供或者接受数据。

>>> f = open(r‘D:\a.txt‘,‘w‘)
>>> f.write(‘hello‘)
>>> f.write(‘world‘)
>>> f.close()
>>> f = open(r‘D:\a.txt‘,‘r‘)  # ‘r‘ 可以省略
>>> f.read(4)
‘hell‘
>>> f.read()
‘oworld‘

  读写行

    file.readline([n])  -从当前位置开始,直到一个换行符的出现(或者读取最多 N个字符 字符)

    file.readlines()  --读取一个文件的所有行

    writelines()  --给他一个字符串列表(可迭代的对象),他会把所有字符串写入文件,需要自己添加新行

  关闭文件

    close()  --关闭文件

    可以使用 try finally 中使用 close()

    也可以使用

    with oepn(sdfsadfasdf) as f:

  使用文件的基本方法

    read([n]),readline([n]),readlines(),write(),writelines()  --不做详细的解释了

对文件内容进行迭代

  按字节进行处理

f = open(filename)while char:    char = f.read(1)    if not char:break    process(char)  # 处理字符串f.close()

  按行操作

f = open(filename)
while char:
    line= f.readline()
    if not line:break
    process(char)  # 处理行
f.close()

  读取所有内容

    如果文件不够太大,则可以用 read() 或者readlines()

  使用fileinput 实现懒惰迭代

    如果文件足够大,则不能用readlines,则适合用 for 循环 和 readline() 方法,也可以使用fileinput

import fileinput
for line in fileinput.input(filename):
    process(line)  #对行进行处理

  文件迭代器

    在python近几个版本中,文件对象是可迭代的,这就意味着可以直接在for 循环中使用它们,从而对它们进行迭代

f = open(filename)
for line in f:
    process(line)
f.close()

    ps:sys.stdin  注意该用法!

    

    

    

  

时间: 2025-01-14 14:19:54

python学习11 -文件,流的相关文章

python学习之-文件和对象

文件和对象文件对象不仅可以用来访问普通的磁盘文件,还能够来访问普通的磁盘文件,也可以访问任何其他类型抽象层面的"文件".内建函数 open() 返回一个文件对象,对该文件进行后续相关的操作都要用到它.文件内建函数 open() 以及 file() 提供了初始化输入/输出(I/O)操作的通用接口.open() 内建函数成功打开文件后会返回一个文件对象,否则引发一个错误.当操作失败,会产生一个IOERROR异常.内建函数 open() 的基本语法:file_object = open(fi

Python学习_06_文件、IO

文件对象 python中的文件操作和c语言比较类似,包括一些缓冲.偏移量的方式. 文件对象可以通过open().file()两个内建方法创建,两个方法并没有什么不同,使用方法和c语言中的fopen()类似: file_object = open(file_name, access_mode='r', buffering=-1) 其中access_mode表示打开方式,r表示只读,w表示只写,r+,w+表示读写,a表示追加等:buffering表示缓冲方式,负值表示默认缓冲方式,0表示不缓冲,1表

PYTHON学习之文件操作;

文件内容替换for line in flielinput.input("filepath",inplace=1):line = line.repace("oldtext","newtext")print line, python中对文件.文件夹(文件操作函数)的操作需要涉及到OS模块和shutil模块.1.得到当前工作目录,即当前PYTHON脚本工作的目录路径:os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3

python基础11 文件操作 ,字符编码

主要内容 文件操作 文件操作 打开文件的模式 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,同a r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建. "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模

Python学习之--文件操作

Python中对文件操作可以用内置的open()函数 读文件 f=open('/home/test/test.txt','r') # 读模式打开文件 f.read() # 读取文件内容 除了正常的读取文件内容,一个常用的操作是判断文件内容是否为空,如下: if len(f.read())==0: # 如果文件内容为空 xxxx 判断一个文件或者路径是否存在,如下(这里需要在代码中导入os module: import os): file='/home/test/test.txt' dir='/h

Python学习日记---文件操作

与文件操作有关函数: 1.打开一个文件open("文件名","打开方式") 打开方式归类: 模式 打开方式 文件存在 文件不存在 r 只读 打开文件 报错 w 只写 清空文件并打开 创建并打开 a 只写 打开并追加 创建并打开 r+ 读写 从文件开始读,或重写 报错 w+ 读写 清空并打开 创建并打开 a+ 读写 打开并追加 创建并打开 范例: iword.txt文件内容 First word Second word threed word oword.txt文件内

python学习——大文件分割与合并

在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情况),假设现在只有一个2G或4G的优盘,该怎么办呢? 有很多方法,例如winrar压缩的时候分成很多小卷,这里不累述. 在学习python之后,我们自己就可以解决这个问题啦. 我们可以自己写一个脚本去分割合并文件,将文件分割成适合优盘大小的小文件,在拷贝,然后再合并. 下面是文件分割脚本: 1 im

python学习笔记文件操作(六)

1.文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 如下文件: 2017-03-24 11:25:06:349 - info: [debug] [AndroidBootstrap] Sending command to android: {"cmd":"shutdown"} 2017-03-24 11:25:06:355 - info: [debug] [AndroidBootstrap] Received command 

python学习之——文件过滤,不显示文件中以‘#’开头的行

#题目:文件过滤,不显示文件中以#开头的行 #来源:python核心编程9.11练习9-1 import os def content_filter(filename): fobj = open(filename,'r') for eachLine in fobj: if eachLine[0] == "#": continue else: print eachLine, fobj.close() if __name__ == '__main__': filename = raw_in