简体   繁体   中英

Python: Remove character only from end of string if character is =“/”

I add different Values to the Houdini Variables with Python.

Some of these Variables are file pathes and end with an "/" - others are just names and do not end with an "/" .

In my current code I use [:-1] to remove the last character of the filepath, so I dont have the "/" . The problem is, that if I add a Value like "Var_ABC" , the result will be "Var_AB" since it also removes the last character.

How can i remove the last character only if the last character is a "/" ?

Thats what I have and it works so far:

def set_vars():   

count = hou.evalParm('vars_names')
user_name = hou.evalParm('user_name')

for idx in range( 1,count+1):
    output = hou.evalParm('vars_' + str(idx))
    vars_path_out = hou.evalParm('vars_path_' + str(idx))
    vars_path = vars_path_out[:-1]

    hou.hscript("setenv -g " + output + "=" + vars_path)

    final_vars = hou.hscript("setenv -g " + output + "=" + vars_path)

    hou.ui.displayMessage(user_name +", " + "all variables are set.")

Thank you

Use endswith method to check if it ends with /

if vars_path_out.endswith('/')

Or simply check the last character:

if vars_path_out[-1] == '/'

Like this:

vars_path = vars_path_out[:-1] if vars_path_out.endswith('/') else vars_path_out

Or like this:

if vars_path_out.endswith('\'):
  vars_path = vars_path_out[:-1]
else:
  vars_path = vars_path_out

another way is rstrip method:

vars_path = vars_path_out.rstrip('/')

Try this in your code:

vars_path_out = hou.evalParm('vars_path_' + str(idx))
if vars_path_out[-1] == '/':
 vars_path = vars_path_out[:-1]

or

based on the comment of jasonharper

vars_path = vars_path_out.rstrip('/')

This is much better than the first

As @jasonharper mentioned in the comments, you should probably use rstrip here. It is built-in and IMO more readable than the contitional one-liner:

vars_path_out.rstrip('/')

This will strip out those strings which end with / and return without that ending. Otherwise it will return your string as-is.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM