精华内容
下载资源
问答
  • Python文件指针

    千次阅读 2016-11-22 21:51:17
    实验文件data.txt如下:This file is data.txt ...实验一、文件指针初始化f = open('data.txt','r+') print f.tell() f.write('nice to meet you') f.flush() print f.tell() print f.read()相应输出: //print f.

    实验文件data.txt如下:

    This file is data.txt
    hello world!
    My name is mark.

    实验一、文件指针初始化

    f = open('data.txt','r+')
    print f.tell()
    f.write('nice to meet you')
    f.flush()
    print f.tell()
    print f.read()
    f.close()
    
    相应输出:
    //print f.tell()
    0
    //print f.tell()
    16
    //print f.read()
    a.txt
    hello world!
    My name is mark.

    以’r+‘模式打开文件,文件指针所指位置为0
    f.write(‘nice to meet you’)会覆盖原文件内容,文件指针随着移动
    print f.read()只会输出剩余内容

    f = open(r'test2.txt','a+')
    print f.tell()
    f.write('nice to meet you')
    f.flush()
    print f.tell()
    print f.read()
    f.close()
    
    相应输出:
    //print f.tell()
    52
    //print f.tell()
    68
    //print f.read()

    以’a+’模式打开,文件指针所指位置为文件尾,此例为52
    f.write(‘nice to meet you’)会在原文件内容尾添加,文件指针随着移动至68
    因为随着write()函数,文件指针已经移到文件末尾,所以print f.read()没有输出

    实验二、文件指针的移动

    f = open(r'test2.txt','r+')
    print f.tell()
    f.seek(0,0)
    print f.tell()
    f.write('nice to meet you')
    f.flush()
    print f.tell()
    f.seek(0,0)
    print f.read()
    f.close()
    
    相应输出:
    //print f.tell()
    0
    //print f.tell()
    0
    //print f.tell()
    16
    //print f.read()
    nice to meet youa.txt
    hello world!
    My name is mark.

    以’r+‘模式打开文件,文件指针所指位置为0
    f.seek(0,0),文件指针指向位置0
    f.write(‘nice to meet you’)从位置0开始覆盖原文件内容,文件指针随着移动
    ‘nice to meet you’替换了原文件

    f = open(r'test2.txt','a+')
    print f.tell()
    f.seek(0,0)
    print f.tell()
    f.write('nice to meet you')
    f.flush()
    print f.tell()
    f.seek(0,0)
    print f.read()
    f.close()
    相应输出:
    //print f.tell()
    52
    //print f.tell()
    0
    //print f.tell()
    68
    //print f.read()
    This file is data.txt
    hello world!
    My name is mark.
    nice to meet you

    以’a+’模式打开,文件指针所指位置为文件尾,此例为52
    f.seek(0,0),文件指针指向位置0
    f.write(‘nice to meet you’)从位置52开始添加,文件指针随着移动至68
    新添加了’nice to meet you‘

    Note:以’a+’模式打开文件,虽然以f.seek(0,0)将文件指针指向文件开头,但使用f.write()函数时,会重置文件指针,默认从文件末尾添加

    展开全文
  • 当我们读取文件内容时,并不能重复的读取,比如一个blogCblog....其实这跟文件指针有关,当我们对文件操作时,文件内部会有一个文件指针来定位当前位置,如图:当open时文件指针是在初始位置1,当读取4个字节内容是...

    当我们读取文件内容时,并不能重复的读取,比如一个blogCblog.txt文件里有blogCblog内容,用两个read()方法读取blogCblog.txt的内容,会发现,第一个返回文件内容,第二个返回‘’。并不能重复读取,如果我想重复读取呢?怎么解决。

    其实这跟文件指针有关,当我们对文件操作时,文件内部会有一个文件指针来定位当前位置,如图:

    bd659bfc4b76

    当open时文件指针是在初始位置1,当读取4个字节内容是文件指针位置就在4,再write时,文件指针从4移到8,所以,只要控制了文件指针,就能重复的读取了!

    操作文件指针可以通过seek方法:

    seek(offset, whence):移动文件指针

    offset:偏移量,可为负数

    whence:偏移相对位置

    偏移相对位置为os模块当中的SEEK_SET、SEEK_CUR、SEEK_END:

    os.SEEK_SET:表示文件的相对起始位置

    os.SEEK_CUR:表示文件的相对当前位置

    os.SEEK_END:表示文件的相对结束位置

    来看下实例代码(一个blogCblog.txt文件里有blogCblog内容):

    1 f = open('blogCblog.txt') #首先先创建一个文件对象

    2 print f.read(3) #用read()方法读取并打印

    3 print f.tell() #打印出文件指针的位置

    4 f.close() #关闭文件

    5

    6 #打印结果:blo

    7 # 3

    上面可以看到用read(3)读取3个字节的内容,而tell()方法返回文件指针的位置。下面来操作文件指针:

    1 import os #导入os模块

    2 f = open('blogCblog.txt') #首先先创建一个文件对象,打开方式为w

    3 print f.read(3) #用read()方法读取并打印

    4 print f.tell() #打印出文件指针的位置

    5 f.seek(0, os.SEEK_SET) #用seek()方法操作文件指针(把文件指针移到文件起始位置并移动0)

    6 print f.read(3) #用read()方法再次读取并打印

    7 print f.tell() #打印出文件指针的位置

    8 f.close() #关闭文件

    9

    10 #打印结果:blo

    11 # 3

    12 # blo

    13 # 3

    上面的代码就重复读取了,如果把第五行注释掉,那么第6、7行代码打印的结果为gCb和6,这是因为文件指针在第3,当再次读取时就在当前的文件指针向后移,这也就是为什么readline()会记住读取位置的原因了。而第5行代码的作用就是把文件指针移到初始位置!就实现了重复读取。

    当你移到指针时,偏移量大于字符串长度时就会报IOError,需要注意!

    展开全文
  • python 文件指针

    2019-08-05 17:53:13
    # 在python2中还有file方法可以打开文件python3中file方法已经没有了,只有open frist_line = f.readline()#获取文件的第一行内容,返回的是一个list print(frist_line)#打印第一行 # res = f.read()#获取除了...
    f = open('‪C:\\Users\ldh\Desktop\test.txt','r') #以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
            # 在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open
            frist_line = f.readline()#获取文件的第一行内容,返回的是一个list
            print(frist_line)#打印第一行
            # res = f.read()#获取除了第一行剩下的所有文件内容
            # print(res)
            # f.close()#关闭文件
    #
    # f = open('file.txt')
    #         for line in f:
    #             print(line)
    
    展开全文
  • 6.2 Python文件指针

    2019-07-05 16:16:59
    2、文件指针 说明:文件指针用于标明文件将要读写的位置 seek(offset[, whence]):把文件指针移动到指定位置 tell():判断文件指针的位置 import os print(os.path.getsize('data.txt')) # getsize可获取...

    2、文件指针

    说明:文件指针用于标明文件将要读写的位置

    • seek(offset[, whence]):把文件指针移动到指定位置
    • tell():判断文件指针的位置
    import os
    print(os.path.getsize('data.txt'))    # getsize可获取文件字节大小
    
    24
    

    演示

    # r模式打开,文件指针位于开始处
    f = open('data.txt', 'rb', True)
    print(f.tell())  
    
    0
    
    # whence默认为0,从开始处开始计算移动;offset为10,移动10步。
    f.seek(10)       
    print(f.tell())
    
    10
    
    # whence为1,从当前处开始计算移动;offset为5,移动5步。
    f.seek(5, 1)    
    print(f.tell())
    
    15
    
    # whence为2,从结尾处开始计算移动;offset为0,移动0步(即此时文件指针在结尾处,与文件字节大小一致)。
    f.seek(0, 2)    
    print(f.tell())
    
    24
    
    # whence为2,从结尾处开始计算移动;offset为0,移动-10,移动到文件结尾处前10个字节
    f.seek(-10, 2)   
    print(f.tell())
    f.close()
    
    14
    

    展开全文
  • Scenario有一个文件的末尾包含两个空行。当我在文件中追加一些内容时,它会在两个空行之后被写入(这是肯定的)。在但我只想要一个空行,然后去掉第二个空行。代替第二个空行,应写入附加数据。在#-------Original ...
  • 文件读取过程中使用了指针这个概念在一开始指针是指向文件内容的开端的,伴随着读写的进行指针一步一步往后挪例如:f=open('G:\liumang.txt','r+')data=f.read()#tell()是求指针在哪里print (f.tell())print (type...
  • r+t:可读、可写w+t:可写、可读with open('b.txt','w+t',encoding='utf-8') as f: print(f.readable()) print(f.writable())a+t:可追加写、可读2、控制文件指针移动方法:f.seek(offset,whence)offset代表文件指针的...
  • 新书速递文 | 黎扶澈python file tell()函数在windows与mac上的差异 01file tell( )方法tell( )方法返回文件的游标位置,即文件指针当前位置。02遇到的问题在使用中发现:同样的.txt文件内容和.py文件,在Mac上和...
  • Python 文件指针(光标)

    千次阅读 2017-09-29 14:02:30
    file=open(r"C:\Users\Tsinghua-yincheng\Desktop\hcq.txt","r") #file.seek(16,0) #0文件调到从开头开始第十五个字符,一个换行符 ...print(file.tell()) #获取文件指针位置(光标位置) print(mystr) #file.seek
  • python文件指针--seek

    2017-11-15 17:48:00
    不想 open close open close ...两次文件,又想从遍历过的地方开始读取。指针想移到想要的位置...... http://blog.csdn.net/WWWwww2333/article/details/75710593?locationNum=1&fps=1 seek,tell ...
  • 如题,并非写入换行,而是读取时讲光标移动到指定行。 seek函数只能移动字符数。 望解答!
  • python关于文件指针

    2019-03-11 16:07:47
    #实现文件指针 #返回指针所在的位置tell f = open(‘b.txt’ ‘utf-8’) ret1 = f.read(2) ret2 = f.tell() print(‘读取的内容’,ret1) print(‘指针的位置’,ret2) f.close() #文件所在的位置,…返回上一级/下一...
  • python移动文件指针seek

    2020-10-10 00:13:27
    Python中使用feek函数来移动文件指针,方法是: 文件对象.seek (offset[, whence]) offset–开始的偏移量,也就是代表需要移动偏移的字节数 whence:可选,默认值为0。给offset 参数一个定义,表示要从哪个位置开始...
  • python文件指针移动

    2020-12-04 16:43:54
    文件指针移动 seek(offset[, whence])函数: offset:开始的偏移量 whence:默认值为 0 0:从文件开始位置算 1:从当前位置开始算 2:从尾部开始算 baidu.txt内容:1234567890 file_object = open(file='D:/baidu...
  • python文件读写指针

    千次阅读 2020-05-09 14:55:10
    当我们学会了用python打开文本文件并进行简单的读取和写入操作时,不知道我们有没有注意到python使用read()和write()函数读写文件的机制,这种机制与我们在打开文件时设置的模式有关。 常用的打开文件的模式为: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,410
精华内容 26,564
关键字:

python文件指针

python 订阅