我正在尝试了解seek
方法的功能。到目前为止,我理解寻求偏移指向文件中特定位置的指针,由whence语句指定,默认为0。
seek(0,0)
指的是文件的开头seek(0,1)
指的是文件的当前位置seek(0,2)
指的是文件的结尾seek(2,2)
将指针从当前位置移动2个字节
文件。我编写了一个程序,应该使用seek方法连续写入两个文本块。
line1 = "This is line 1"
line2 = "This is line 2"
line3 = "This is line 3"
my_file = open('NewFileName.csv', 'w')
my_file.truncate()
my_file.write("%s\n%s\n%s" % (line1, line2, line3))
my_file.seek(1)
line4 = "This is new line# 1"
line5 = "This is new line# 5"
line6 = "This is new line# 6"
my_file.write("%s\n%s\n%s" % (line4, line5, line6))
my_file.close()
但是,在第一个文本块结束后,我无法让程序在新行中写入第二个文本块(第4行 - 第6行)。
当我尝试my_file.seek(0,1)
时,我的输出为
This is line 1
This is line 2
This is line 3This is new line #1
This is new line# 5
This is new line# 6
当我尝试my_file.seek(1,1)
时,我正在
This is line 1
This is line 2
This is line 3This is new line #1
This is new line# 5
This is new line# 6
..看起来和上面一样。
即使我写my_file.seek(5,1)
,它也会提供与上面相同的输出。所以我对搜索方法实际如何工作相当困惑。
我真正想要的是让两个文本块一个接一个地写入
这是第1行 这是第2行 这是第3行 这是新的第1行 这是新的第5行 这是新的第6行
请告知我哪里出错,或者寻求甚至不是实现我想要的正确方法。我已经在网上阅读了一些这方面的文档,但仍然无法正确解决这个问题。
非常感谢