Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Python文件中获取下一个标记(int、float或string)?_Python - Fatal编程技术网

如何从Python文件中获取下一个标记(int、float或string)?

如何从Python文件中获取下一个标记(int、float或string)?,python,Python,是否有某种方法可以从Python中的文件中获取下一个令牌,例如Java中的Scanner类 File file = new File("something"); Scanner myinput = new Scanner(file); double a = myinput.nextDouble(); String s = myinput.next(); 我想忽略空格、制表符、换行符,只从文件中获取下一个int/float/word。我知道我可以阅读这些文字,自己制作一些类似扫描仪的东西,但我想

是否有某种方法可以从Python中的文件中获取下一个令牌,例如Java中的Scanner类

File file = new File("something");
Scanner myinput = new Scanner(file);
double a = myinput.nextDouble();
String s = myinput.next();
我想忽略空格、制表符、换行符,只从文件中获取下一个int/float/word。我知道我可以阅读这些文字,自己制作一些类似扫描仪的东西,但我想知道是否已经有我可以使用的东西了

我四处搜索,但只能找到面向行的方法


谢谢大家!

如果文件是类似于*.ini的文本文件,则可以使用ConfigParser模块

这方面的例子很少

我想,pyparsing会为其他目的这么做。 我以前没有使用过pyparsing,所以我现在没有任何线索


您可能可以查看标准库中的shlex模块:


它无法按您希望的方式处理浮动。也许你可以扩展或修改它。

我不认为这里面有什么复杂的东西

但您可以查看以下选项

  • 通过提供regex的
  • re模块中有一个类(但我认为他们没有进一步开发)
  • 你也可以考虑使用+
  • 或者就像你自己提到的:自己建造一个,捐给社区,然后出名;)
实际上,它可以处理浮动!只需将属性whitespace_split设置为True,它将按预期解析点。:-)谢谢你,这正是我需要的!这太棒了。您可以向它输入
sys.stdin
并使用迭代或
get_token()
获取下一个令牌。不要将python保留字用作变量名。在、
str
list
中重新定义
,然后得到可能难以调试的有趣错误消息,这是一个常见的陷阱。@cfi:谢谢--我在示例中将“in”改为“input”。将问题从关键字改为内置。您很安全,因为您可能在Python 2上。*。在Python3中,
raw\u input()
input()
替换。小写的
扫描器
可能是安全的…Pyparsing不再托管在wikispaces.com上。去
import shlex
import StringIO # use in place of files

list(shlex.shlex(StringIO.StringIO('Some tokens. 123, 45.67 "A string with whitespace"')))