[英]Python: Parse file for a string and return value as variable
我正在嘗試執行此操作,檢查配置文件中的行是否包含字符串( 'string1'
),如果是,則打印該字符串和找到的消息( 'Found string1'
)。 我需要將找到的消息存儲為變量。
問題正好在這里(對於print(line)
和print('Found string1')
沒有任何結果:
def get_version():
logger.info('Started')
for file in os.listdir(running_config_dir):
if file.endswith('.config'):
for line in file:
if str('string1') in line:
print(line)
print('Found string1')
else:
logger.critical('Running Configuration not found')
logger.info('Finished')
這是我的配置文件,
string1
string2
string3
file
是一個字符串 ,包含文件名。 這樣,遍歷字符串將為您提供單個字符, 而不是文件內容:
>>> file = 'foo'
>>> for line in file:
... print(line)
...
f
o
o
您需要打開文件名來獲取文件對象:
with open(file) as fileobj:
for line in fileobj:
請注意, '...'
文字字符串語法已經生成了一個字符串對象,無需將其傳遞給str()
調用。
我不確定您將找到的消息存儲為變量的含義是什么; 您已經可以訪問line
變量,因此您可以返回以下內容:
def get_version():
logger.info('Started')
version = None
for file in os.listdir(running_config_dir):
if file.endswith('.config'):
with open(file) as fileobj:
for line in fileobj:
if 'string1' in line:
print(line)
print('Found string1')
version = line.strip()
else:
logger.critical('Running Configuration not found')
logger.info('Finished')
return version
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.