Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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 根据前一行的条件在文本文件中查找要更改的行_Python_Text - Fatal编程技术网

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

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
    {
        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的东西了。这基本上回答了我的问题;-)