Я относительно новичок в python, и я пишу метод для набора инструментов, который я создаю.
Функция выглядит примерно так:
def explodeByUniqueAttributeValue(inputfile,fieldname,outputworkspace):
...
Когда путь к входному файлу или рабочей области содержит специальные escape-символы, такие как \ t, функция не работает.В частности, входной файл может выглядеть примерно так:
"C:\tmp\Data\Data.dbf"
, а выходное пространство может выглядеть примерно так:
"D:\Data\2010_12\Output"
В этих случаях Python читает соответственно:
>>> inputfile
C:\tmp\\Data\\Data.dbf
>>> print inputfile
C: mp\Data\Data.dbf
и
>>> outputworkspace
'D:\\Data\x810_12\\Output'
>>> print outputworkspace
D:\Dataチ0_12\Output
Мой вопрос:
Есть ли способ проанализировать входные параметры функции как необработанные строки, так же, как это можно сделать при назначениифайл и рабочая область вывода выполняются через переменную в сценарии , т. е.
inputfile = r"C:\tmp\Data\Data.dbf"
outputworkspace = r"D:\Data\2010_12\Output"
или любую функцию, примененную к параметрам, которая вернет их в общий формат?Я до сих пор пробовал os.path.normpath () или string.encode ()
для решения проблемы с входным файлом. Я нашел способ обойти это следующим образом:
Dummy = inputfile.replace('\t','\\t'); inputfile = Dummy; del Dummy
Что я могу повторить для всех escape-символов или создать другой метод, который делает именно это, но этого нельзя сделать для экранирования
"\2010_12"
, который "читается" питоном как
"\x810_12"
Так как это не был бы "правильный" способ программирования
Я уже читал такие решения, как использование "/" или "\\", но мне интересно, есть ли способпередать входные параметры метода как необработанные.
Добавление примера:
# -*- coding: ascii -*-
import os
def printpaths(file,outputworkspace):
print file
print outputworkspace
printpaths('C:\tmp\Data\Data.dbf','D:\Data\2010_12\Data')
Помощь будет принята с благодарностью
Заранее спасибо