Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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 - Fatal编程技术网

如果文本文件不存在,请使用python向其添加一行

如果文本文件不存在,请使用python向其添加一行,python,Python,可能重复: 我有一个文本文件,如下所示: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0"> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTarget

可能重复:

我有一个文本文件,如下所示:

  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0">
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>
我想在两者之间加一条线 及

  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0">
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
  <Import Project="$(ProjectName).targets" />
</Project>
我使用fileinput模块插入行,但不想添加 如果它已经存在于文件中
如何才能做到这一点?

您应该阅读整个文件或足够多的行,并检查子字符串是否包含在内容中:

'<Import Project="$(ProjectName).targets" />' in file_content
或者可以使用正则表达式使搜索更加健壮:

import re
regex = re.compile(r'<Import Project="\$\(ProjectName\)\.targets\s*/>')
if not regex.search(file_content):
    insert_line_into_file()
else:
    #the line already exists

将文本作为文件的文本:

import re

match = = re.search( '\<ImportGroup Label="ExtensionTargets"\>', text )
text = text[:match.end()] +'<Import Project="$(ProjectName).targets" />\n'+ text[match.end():]

不,不是重复,这是一个xml文件,但在这里,我要求使用任何xml API都无法读取文本文件。因此,我重新发布了它。我能够使用Fileinput模块添加行,只要求您避免重复。xml格式的文件应使用xml解析器或html解析器(如xmlTree或美丽的乌苏。。。没有人…现在,为什么不发表评论就投反对票?我看不出这个回复过于草率,不费吹灰之力,或者回答明显错误,甚至可能是危险的错误。因此,如果你(投了否决票的人)认为可以改进的话,最好对它进行评论或标记。