2016-01-22 64 views
0

我在写一个可以在各种系统上运行的通用python脚本。我被困在一个条件,我需要检查变量的内容。直到现在我简单的代码看起来像:如何解析变量内容,然后根据它来评估条件,python

log_path = parser.get('default', 'log_path') 

# name and location of tar file 
tar_file = 'logs.tar.gz' 
working_path = os.getcwd() 
file_location = os.path.join(working_path,tar_file) 

# open conection to s3 and get bucket object 
s3_conn = S3Connection() 
bucket = s3_conn.get_bucket('smso-eng-log-share') 

# make tar.gz 
with tarfile.open(tar_file, 'w:gz') as tar: 
    tar.add(log_path, arcname='tomcat7') 

变量log_path正在从一个.ini文件回升。

说出当前值log_path = /var/log/tomcat7/然后它创建名为tomcat7的日志焦油。

现在假设log_path = /var/log/haproxy/,那么它应该有一个名为 'haproxy'

回答

0

你可以使用"/var/log/haproxy/".split('/')os.path.split("/var/log/haproxy/")获得路径的一部分。

查看更多功能DOC:https://docs.python.org/2/library/os.path.html

+0

我有点糊涂了,我想写一个条件语句中的.ini文件内 '{%其他%} 如果在/ var /日志/ HAProxy的/存在 然后log_path = /无功/日志/ HAProxy的/ 的elif的/ var /日志/ tomcat7存在 然后log_path = /无功/日志/ tomcat7/ {%ENDIF%}' 我想知道如果语法是正确的? –

+0

这是新问题 - 创建新问题。 – furas

+0

是的,我想你是对的 –

1

使用create

os.path.basename(os.path.normpath(log_path)) 

其中log_path是你的包含路径名变量。

例子:

>>> log_path = '/var/log/tomcat7/' 
>>> os.path.basename(os.path.normpath(log_path)) 
>>> 'tomcat7'