2017-01-17 8 views
-1

Я пишу скрипт python. я инициализации параметраПочему python заменяет первые несколько символов?

self._outpu_path = '' 

и установить значение по OptionParser, со значением

/Users/huaxingzheng/projects/test 

, а затем я определил выходной файл строку имени

FILE_NAME = "resource_map.lua" 

тогда я Concat строку

lua_file_full_path = "{0}/{1}".format(self._outpu_path, FILE_NAME) 

при печати переменной lua_file_full_path, он показывает

/resource_map.luang/projects/test 

, что означает, что заменить первые несколько символов.

Я использовал оператор +, присоединился и что-то еще, чтобы исправить это, но это не работает, кто-нибудь знает причину? Спасибо, многое изменилось.

------------------------ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ -------------------- ----

при печати переменной self._output_path печатает что:

/Users/huaxingzheng/projects/test 

затем я установил новый переменный

OUTPUT_PATH = "/Users/huaxingzheng/projects/test" 

тогда я обнаружил, что они не являются одинаковыми, поскольку

len(self._output_path) 

показывает 34

в то время как

len(OUTPUT_PATH) 

показывает 33

+2

Вы уверены, что нет обратных слэша где-то в вашем строка? Предоставьте [MCVE] - что-то, что можно скопировать для интерпретатора. –

+0

Вы могли бы показать весь свой код – Navidad20

+0

note: https://docs.python.org/3/library/os.path.html#os.path.join –

ответ

0

для соединения путей, используйте стандартную os.path.join() функцию:

import os 

lua_file_full_path = os.path.join(self._outpu_path, FILE_NAME) 
+0

OP заинтересован в том, чтобы знать причину. В то время как 'os.path.join' является предпочтительным способом объединения путей, он будет давать точно такой же результат, как' '{0}/{1}". Format' в этом конкретном случае (в системах Unix). Это действительно должно было быть опубликовано как комментарий или вообще не опубликовано, поскольку Уэйн уже связан с этой страницей. – vaultah

+0

Я использую функцию в первый раз, это не эта причина^_ ^ – HuaxingZheng