我正在编写一个脚本来处理x12edi文件,我想逐行迭代。这些文件由一系列不同的记录组成,每个记录都以一个特殊字符结尾(例如~
,但见下文)。文件可能很大(大于100 MB),所以我不想把整个文件都读入并拆分。记录没有换行分隔;读取第一行可能会读取整个文件。这些文件都是ASCII格式的。在
Python清楚地提供了读取文件到某个字符的功能,前提是该字符是一个换行符。我想对一个武断的人做同样的事情。我假设逐行读取是通过缓冲来实现的。我可以实现自己的缓冲读取器,但如果有更好的解决方案,我宁愿避免额外的代码和开销。在
注意:我见过一些类似的问题,但它们似乎都认为应该按行读入文件,假设行的大小是合理的。在这种情况下,整个文件可能只有一行。在
编辑:段终止符字符是文件的第106个字节。在调用脚本之前是未知的。在
也许你需要这样的东西
警告:代码未优化
这还远未达到最佳效果,但它将是一个非常简单的缓冲区的纯Python实现:
如果文件中没有新行,请在将其放入Python脚本之前对其进行转换,例如:
然后根据需要使用}。在
readline()
、readlines()
或{相关问题 更多 >
编程相关推荐