python readline()和Java';s Scanner类nextLine()
Python的readline()和Java的Scanner类方法nextLine()之间有什么区别 nextLine()查找下一行分隔符,该分隔符可能不是此处所写的“\n”: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine() Python readline()方法也这样做吗?这一点很重要,因为我的文件可能有其他行分隔符,但我需要特别查找新行字符python readline()和Java';s Scanner类nextLine(),java,python,Java,Python,Python的readline()和Java的Scanner类方法nextLine()之间有什么区别 nextLine()查找下一行分隔符,该分隔符可能不是此处所写的“\n”: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine() Python readline()方法也这样做吗?这一点很重要,因为我的文件可能有其他行分隔符,但我需要特别查找新行字符 有什么想法吗?你应该自己测试一下 我已经在控制台上
有什么想法吗?你应该自己测试一下 我已经在控制台上使用
f.readline()
对它进行了测试,它一直读到\n
,即使我的行中有\r
>>> f.readline()
'This is a test\n'
>>> f.readline()
'Second line\rwith char\n'
>>> f.readline()
'Third line'
注意:如果在python脚本上简单打印读取行,可能会发生一些奇怪的事情。但是如果你使用
repr(str)
你会看到所有的\n
和\r
首先你是在比较苹果和橙子Scanner
不是python文件对象的Java等价物BufferedReader
是等效的,事实上,如果您查看BufferedReader
的方法文档:
读一行文字。一条线路被视为由任何一条线路终止
换行符('\n'
)、回车符('\r'
)或回车符
紧接着是换行符
Python也会:
一种解释文本流的方式,其中包含以下所有内容
被识别为行尾:Unix行尾约定'\n'
,
Windows惯例'\r\n'
,以及旧的Macintosh惯例'\r'
。
有关详细信息,请参见PEP 278和PEP 3116,以及str.splitlines()
额外使用
AFAIK python不提供Java的
扫描器的公共等价物。但是有一个(未记录的)可以用来实现你想要的。
您只需在创建实例时提供一个“词典”,然后调用scan
方法
可能最简单的实现方法是将文件分块读取,然后使用re.split
将其拆分谢谢,但是这并不考虑所有可能的线分离器的集合。有些unicode行分隔符不像新行字符那样广为人知。