您的位置:

python读取多次文件read的过程指针,python read方法

本文目录一览:

Python读取文件内容的方法有几种

python读取文本文件内容的方法主要有三种:read()、readline()、readlines()。

第一种:read()

read()是最简单的一种方法,一次性读取文件的所有内容放在一个大字符串中,即内存中。

read()的好处:方便、简单,一次性读出文件放在一个大字符串中,速度最快。

read()的坏处:文件过大的时候,占用内存会过大。

第二种:readline()

readline()逐行读取文本,结果是一个list。

readline()的好处:占用内存小,逐行读取。

readline()的坏处:逐行读取,速度比较慢。

第三种:readlines()

readlines()一次性读取文本的所有内容,结果是一个list。

readlines()的好处:一次性读取文本内容,速度比较快。

readlines()的坏处:随着文本的增大,占用内存会越来越多。

python3用read()函数读取文件两次,就变成空字符串了

python在读取文件的时候是根据光标位置来读取的。读一行以后光标位置到了下一行。再来个read又到了下一行。

想要重新从头开始读的话用f.seek(0)

将光标位置放到最前面。这样再f.read()就是第一行的内容

还有个方法是f.tell()

告诉你当前光标的位置。你可以把文件都读完了以后f.tell()一下看看光标位置

然后再f.seek(0)

再f.tell()一下看看光标位置

with open() as f跟你截图用的差不多,只不过这种方式不用f.close(),会自动关闭文件句柄。不过也可以手动关闭文件句柄

python 读取文件

我们需要新建一个文本文档,这个文档可以是windox自带的记事本;

然后我们在其中输入一些我们想要的信息;

新建好文档之后,我们需要点击另存为,把文件保存在一个你知道的地方;

保存的时候,请注意保存格式,不然有可能python打不开;

然后我们打开python的一个编辑器,IDLE;

在编辑器中输入一下的信息就可以打开文件了;

read是文件读取,seek是文件的指针重新指到最前面,close是文件关闭。

python对文本文件的读有哪些方法,写有哪些方法?

1 文件读取全文本操作

在一定场景下我们需要把文本全部内容读取出来,进行处理。python提供三种函数读取文件,分别是read readline readlines,

read():读取文件的全部内容,加上参数可以指定读取的字符。

readline():读取文件的一行。

readlines():读取文件的所有行到内存中。

不同场景下我们可以选择不同函数对文件进行读取。

1.1 方法一

file_name = input("请输入你要打开的文件的完整路径及名称")

file= open(file_name, "r")

txt=file.read()

# 全文本的处理

file.close()

使用read函数将文件中的内容全部读取,放在字符串变量txt中。这样操作适合于文本较小,处理简单的情况,当文件较大时,这种方式处理时不合适的。一次性读取较大的文件到内存中,会耗费较多的时间和资源。这时候分批处理效果更好。

1.2 方法二

file_name = input("请输入你要打开的文件的完整路径及名称")

file= open(file_name, "r")

txt= file.read(4)

# 文本的处理while txt != ""txt= file.read(4)

# 批量文本处理

file.close()

这种方法适合于分批处理文本信息,每次批量读入,批量处理,不会对内存造成较大的压力。

1.3 方法三

file_name = input("请输入你要打开的文件的完整路径及名称")

file= open(file_name, "r")for line infile.readlines():

# 处理每一行数据

file.close()

这种处理方式适合处理以行为分割特点的文本,并且文本较小,因为这种处理方式需要一次性把文件所有内容读取到内存中。

1.4 方法四

file_name = input("请输入你要打开的文件的完整路径及名称")

file= open(file_name, "r") # 这里的file时文件句柄for line infile:

# 处理每一行数据

file.close()

这种方式和方法三中的区别是分行读入,逐行处理,不会一次性把文件所有内容都读入到内存中,对一些大文件的处理是很有效的。

2 文件写入文本操作

文件写入有两种写入函数和一种辅助支持。

write():向文件中写入一个字符或者字节流

writelines():将一个元素全为字符串的列表写入到文件中 需要注意的是,writelines写入列表元素的时候会把列表元素的内容拼接到一起写入,不会有换行和空格 。

seek(): 辅助写入函数offset偏移量参数代表含义如下

0 - 文件开头

1 - 当前位置

2 - 文件结尾

2.1 方法一

file_name = input("output.txt", "w+")

text= "hello world!"file_name.write(text)

file.close()

2.2 方法二

file_name = input("output.txt", "w+")

list= ["中午","早上","晚上"]

file_name.writelines(list)for line infile:

# 读取写入的数据,这时候发现是没有任何内容的

file.close()

我们增加一行代码就可以读取到写入的文件内容,利用seek()函数调整写操作指针的位置,可以实现写操作之后的正常读取。

file_name = input("output.txt", "w+")

list= ["中午","早上","晚上"]

file_name.readlines(list)

file_name.seek(0) # 调整写的指针到文件的开始位置for line infile:

# 读取写入的数据,这时候会读出一行写入的数据。

file.close()

python中read() ,readline()以及readlines()区别

该篇文章主要是记录python中操作文件的三个函数read(),readline()以及readlines()之间的区别。

首先先给出结论:

1.read() 每次读取整个文件,它通常将读取到底文件内容放到一个字符串变量中,也就是说 .read() 生成文件内容是一个字符串类型。

2.readline()每只读取文件的一行,通常也是读取到的一行内容放到一个字符串变量中,返回str类型。

3.readlines()每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回list类型。

我的文件内容如下:

编写程序如下:

得出结果如下:

编写程序如下:

得出输出结果如下:

编写程序如下:

得到输出结果如下:

python读写文件

读文件

    1)使用open()方法打开文件,返回一个文件对象

        原型:open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

        举例:f = open('test.txt', 'r')

        test.txt表示文件路径(包含文件名,这个file参数可以是绝对或者相对路径)

        r表示是读文本文件,rb是读二进制文本文件。(这个mode参数默认值就是r)

    2)使用close()方法关闭文件

        f.close()

        打开后的文件必须关闭,因为文件对象会占用系统资源,系统打开文件数量也就有限了

    3)打开文件时的异常处理

        f=open('test.txt', 'r')

        f.read()

        f.close()

        FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

        文件读写时都有可能产生异常IOError(比如文件不存在),这样其后面的f.read(),f.close()就不会调用。为保证无论是否异常都可以关闭文件,一般使用try ... finally来处理:

        try:

            f = open('test.txt', 'r')

            f.read()

        finally:

            if f:

                f.close()

        但这种写法过于繁琐,所以Python引入了with语句来自动调用close()方法:

        with open('test.txt', 'r') as f:

            f.read()

    4)读文件 - read()、readline() 和 readlines()

        read() 一次读取整个文件,它通常用于将文件内容放到一个字符串变量中。如果文件过大,内存不够,可以通过反复调用read(size)方法,每次最多读取size个字节的内容。

        readline() 一次读取文件中一行内容,可反复调用

        readlines() 一次读取所有内容并按行返回列表,该列表可以由for ... in ... 结构再进一步处理。

        特别注意:

        这三种方法是把每行末尾的'\n'也读进来了,如有需要就得我们手动去掉'\n'

        with open('test.txt', 'r') as f:

            list = f.readlines()

        for i in range(0, len(list)):

            list[i] = list[i].rstrip('\n')

写文件

    1)写文件和读文件是一样的,唯一区别是open文件时,传入标识符不同,即'w'或者'wb'表示写文本文件或写二进制文件

    f = open('test.txt', 'w')

    f = open('test.txt', 'wb')

    f = open('test.txt', 'a')

    f.close()

    特别注意:

    1. 如果没有这个文件,会自动创建一个新文件;如果有,就会先把原文件的内容清空再写入;若不想清空原来的内容而是直接在后面追加新的内容,就用'a'这个模式

    2. 写文件,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。

    2)写文件 - write()、writelines()

    write()方法和read()、readline()方法对应,是将字符串写入到文件中。

    writelines()方法和readlines()方法对应,也是针对 列表 的操作。它接收一个 字符串列表 作为参数,将他们写入到文件中。

    特别注意:

    换行符不会自动的加入,需要显式的加入换行符。

    f = open('test.txt', 'w')

    f.writelines(["111\n", "222\n", "333\n"])

补充说明:

1)对于非默认编码(utf-8)的文件,需要open时添加encording参数,选择对应的编码方式

2)r+, w+, a+,可读可写

3)seek()方法,移动文件指针

seek(offset[, whence]) ,offset是相对于某个位置的偏移量。位置由whence决定,默认whence=0,从开头起;whence=1,从当前位置算起;whence=2相对于文件末尾移动,通常offset取负值。