有没有办法从Python中的文件中获取下一个标记,例如Scanner类用Java编写?
File file = new File("something");
Scanner myinput = new Scanner(file);
double a = myinput.nextDouble();
String s = myinput.next();
我想忽略空格,制表符,换行符,然后从文件中获取下一个int / float / word。我知道我可以阅读这些内容并自己构建一些类似Scanner的内容,但我想知道是否还有我可以使用的内容。
我已经四处寻找,但只能找到面向行的方法。
谢谢!
答案 0 :(得分:10)
查看标准库中的shlex模块:http://docs.python.org/library/shlex.html
import shlex
import StringIO # use in place of files
list(shlex.shlex(StringIO.StringIO('Some tokens. 123, 45.67 "A string with whitespace"')))
它不像您想要的那样处理浮动。也许你可以扩展或修改它。
答案 1 :(得分:1)
我认为这种复杂的东西并不存在。
但您可以查看以下选项
use re.split(pattern, string)
并通过提供正则表达式答案 2 :(得分:0)
如果您的文件是* .ini相似的文本文件,则可以使用ConfigParser模块
那里的例子很少。
我认为,pyparsing会出于其他目的而这样做。 我之前没有使用过pyparsing,所以我现在没有任何线索。答案 3 :(得分:0)
您可以查看PLY