-2

重複の可能性:
Pythonを使用してファイルが存在しない場合は、ファイルに行を追加します

次のようなテキストファイルがあります。

  <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>

次のようにと<Import Project="$(ProjectName).targets" />の間 に線を追加したい</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" />が、ファイルにすでに存在する場合は追加したくありません。どうすればよいですか?

4

2 に答える 2

0

ファイルのテキストとしてテキストを使用する場合:

import re

match = = re.search( '\<ImportGroup Label="ExtensionTargets"\>', text )
text = text[:match.end()] +'<Import Project="$(ProjectName).targets" />\n'+ text[match.end():]
于 2012-09-05T07:09:02.163 に答える
-1

ファイル全体または十分な行を読み、サブストリングが次のコンテンツに含まれているかどうかを確認する必要があります。

'<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
于 2012-09-05T06:33:34.293 に答える