Python:从文件读取空格分隔的字符串,类似于readline
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python:从文件读取空格分隔的字符串,类似于readline,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1223字,纯文字阅读大概需要2分钟。
内容图文
![Python:从文件读取空格分隔的字符串,类似于readline](/upload/InfoBanner/zyjiaocheng/803/ab0b84c973d7478c99348e6c7d8b8320.jpg)
在Python中,f.readline()返回文件f中的下一行.也就是说,它从f的当前位置开始,读取直到遇到换行符,返回中间的所有内容并更新f的位置.
现在我想完全相同,但是对于空格分隔的文件(不仅仅是换行符).例如,考虑带有内容的文件f
token1 token2
token3 token4
token5
所以我正在寻找一些函数readtoken(),这样在打开f之后,f.readtoken()的第一次调用返回token1,第二次调用返回token2等.
为了提高效率并避免长行或非常大的文件出现问题,应该没有缓冲.
我几乎可以肯定,这应该可以通过标准库“开箱即用”.但是,我没有找到任何合适的函数或重新定义readline()的分隔符的方法.
解决方法:
你需要创建一个包装函数;这很容易:
def read_by_tokens(fileobj):
for line in fileobj:
for token in line.split():
yield token
请注意,.readline()不只是逐个字符地读取文件,直到遇到换行符为止;以块(缓冲区)读取文件以提高性能.
上面的方法按行读取文件,但在空白处产生结果拆分.使用它像:
with open('somefilename') as f:
for token in read_by_tokens(f):
print(token)
因为read_by_tokens()是一个生成器,你需要直接遍历函数结果,或者使用next() function逐个获取标记:
with open('somefilename') as f:
tokenized = read_by_tokens(f)
# read first two tokens separately
first_token = next(tokenized)
second_token = next(tokenized)
for token in tokenized:
# loops over all tokens *except the first two*
print(token)
内容总结
以上是互联网集市为您收集整理的Python:从文件读取空格分隔的字符串,类似于readline全部内容,希望文章能够帮你解决Python:从文件读取空格分隔的字符串,类似于readline所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。