2017-04-14 30 views
0

從文件的字符串是這樣的:Python如何剪出我想要的字符串?

aux_source_directory(detail LIB_SRC) 
file(GLOB_RECURSE INC_ALL "./*.h") 
autogen_ui(LIB_SRC) 
add_library(qtdebugger_luadebugger ${LIB_SRC} ${INC_ALL}) 
target_link_libraries(qtdebugger_luadebugger PUBLIC Qt4::QtGui qtinfra debugger util infra opc) 

if(test) 
    add_subdirectory(unittest) 
endif(test) 

我想在target_link_libraries()剪輯出來的話。我能怎麼做?

+1

讀取文件。循環線。查找以'target_link_libraries'開頭的行。在'('和')'之間提取字符串。 ---你需要哪些部分幫助?另外,你有嘗試過什麼嗎?請分享您的代碼。 – Aziz

+0

如果它包含幾行target_link_libraries函數會怎麼樣。仍然閱讀它的每一行可能不會起鍋。我認爲最好將所有文件的文本讀取爲一個字符串。 –

回答

0

我試過這樣這似乎工作:

#!/usr/bin/python 
 
# -*- coding: UTF-8 -*- 
 

 
import re 
 

 
file_object = open("C:\Users/vlyu/Perforce/vlyu_GUI/qtgui/debugger/luadebugger/CmakeLists.txt", "r") 
 
try: 
 
\t fileText = file_object.read() 
 
\t if fileText.find("target_link_libraries") != -1: 
 
\t \t index1 = fileText.index('target_link_libraries(') 
 
\t \t index2 = fileText.index(')', index1) 
 
\t \t print index1 
 
\t \t print index2 
 
\t \t t1 = fileText[index1:index2+1] 
 
\t \t print t1 
 
finally: 
 
\t file_object.close()

相關問題