我需要从一个文件中得到一个特定的行号,我将其传递到我编写的一个python程序中。我知道我想要的那一行是第5行,那么有没有办法我只需要抓住第5行,而不必遍历文件?python阅读文件
回答
如果你知道你有兴趣的行之前有多少个字节,那么你可以在seek
那里读出一行。否则,“行”不是第一个类构造(它只是一个字符的列表,由一个字符结尾,您将赋予一个特殊含义 - 换行符)。要找到这些换行符,您必须读入文件。
实际上,您可以使用readline
方法读取5行,然后读取您的行。
你为什么要这么做?
我认为下列应该做的:
line_number=4
# Avoid reading the whole file
f = open('path/to/my/file','r')
count=1
for i in f.readline():
if count==line_number:
print i
break
count+=1
# By reading the whole file
f = open('path/to/my/file','r')
lines = f.read().splitlines()
print lines[line_number-1] # Index starts from 0
这应该给你的文件中的第4行。
这看起来像它会工作,但我需要抓住从命令行传入的文件...所以像 python myprogram blocks.txt 而我需要从blocks.txt抓住第5行 – Zack 2012-03-04 07:53:33
唯一这个解决方案的问题是它会将整个文件读入内存。 – 2012-03-04 07:54:55
固定..加入另一个waay。 – 2012-03-04 07:55:00
- 1. Python文件阅读
- 2. Python阅读文件
- 3. 阅读python文件
- 4. 阅读JSON文件在python
- 5. 阅读文件在python
- 6. python阅读csv文件
- 7. 阅读适合python文件
- 8. 阅读python中的文件
- 9. 再次阅读文件Python
- 10. 在Python中阅读文件
- 11. python阅读ini文件
- 12. 阅读.NC文件被Python
- 13. 阅读Excel文件Python
- 14. 阅读文本文件列出在python
- 15. Python阅读和打印文本文件
- 16. Python:部分阅读文本文件
- 17. 阅读文本文件,并使用python
- 18. Python的csv阅读器不断阅读相同的文件
- 19. 阅读文件
- 20. 阅读文件
- 21. 阅读文件
- 22. 阅读文件
- 23. 阅读文件
- 24. 阅读文件
- 25. Python的csv文件阅读器不读整个文件
- 26. 阅读二进制文件Python来Vb.net
- 27. 阅读python文件的最后一行
- 28. 阅读Python中的JSON格式文件
- 29. Python排序文件同步阅读
- 30. 阅读Python递归文件夹
除非你知道线5的特定缓冲器的位置,你_must_通过线1-4迭代达到5行。这是因为线由换行符的存在下测定文件内的'\ n'。这是你问的吗?或者你的意思是,你不想加载_entire_文件来检索第5行? – 2012-03-04 13:27:04