我有一个任务,需要创建一个tail来查找文件中最后的K
行。我们已经得到了一个缓冲区。目前,我正在尝试编写一些小东西,并在文件中搜索"\n"
字符。我遇到了一些问题。在python
中,我的代码回吐6,在python3
中,它是a0。不过,文本文件的功能远不止这些。有人能告诉我为什么我不想这样做吗?
def new():
try:
f = open("test.txt", "r")
count = 0
for i in f:
if i == "\n":
count = count + 1
return count
f.close()
except(FileNotFoundError):
print("No file")
我想做的是在文件中使用seek向后搜索,并经常搜索新行字符,但这似乎对我都不起作用。
for i in f:
没有做你认为的事情。文件的默认迭代器为您提供lines
,而不是characters
。所以你是说“整条线等于回报吗?”试着用
if i[-1] == "\n":
来代替,就像上面说的“行中的最后一个字符是换行符吗?”您可能会注意到这是微不足道的事实,因为每个“行”都以一个换行符结束,所以简单地计算行数就足够了。
如果要遍历各个字符,我将执行以下操作:
将变量命名为您认为它们是什么,如果它们最终不是您认为的那样,也将有助于解决问题。
关于repl.it的示例。这些变量被命名为
line
和char
只是为了显示它们是什么,它们可以是banana
和henry
一样简单,尽管这样就不太清楚发生了什么。raven
在本例中模拟文件。为什么不简化逻辑并使用Python内置?
更简单的方法是
如果将整个文件保存在一个数组中是一个问题,那么您可以逐行读取文件,但只保留最后读取的K行,这样当您到达文件的末尾时,就可以得到所需的尾部。
相关问题 更多 >
编程相关推荐