Python 根据前一行的条件在文本文件中查找要更改的行
python中有没有办法在文本文件中查找和更改上面的行满足某些条件的行?特别是考虑一个这样的文本文件:Python 根据前一行的条件在文本文件中查找要更改的行,python,text,Python,Text,python中有没有办法在文本文件中查找和更改上面的行满足某些条件的行?特别是考虑一个这样的文本文件: dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { inlet { type fixedValue; value uniform (0 0.6 0); } outlet
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0.6 0);
}
outlet
{
type inletOutlet;
inletValue uniform (0 0 0);
value uniform (0 0 0);
}
}
例如,在这个文件中,我想更改包含值uniform(0.6 0)的行代码>。条件是该行位于边界字段
内和入口
内,并以值
开始(在去掉前导空格后)
获取此行的行索引以更改它的最佳方法是什么?这看起来与Python的标记化兼容,因此您可以只使用tokenize。生成\u标记
,然后伪解析标记流,并在找到要查找的内容后从相关标记中提取行号
一种更复杂但更安全的方法是创建一个完整的解析器,将其解析为Python结构,在内存中更新它,然后将其写回。您可以尝试一些正则表达式的东西,但它会在实例中破坏任何更改。。要使其可靠,您需要正确解析该文件。显然这是OpenFoam的东西?有多个pypi包可以帮助您读取和修改contentn并将数据写回文件。转到并搜索openfoamOkay,这样就没有(简单的)方法可以导入类似于PyFoam的东西了。这基本上回答了我的问题;-)