我是python的新手,我正在为我正在创建的工具箱编写一个方法。
这个功能是这样的:
def explodeByUniqueAttributeValue(inputfile,fieldname,outputworkspace):
...
当输入文件或工作空间的路径具有特定的转义字符,例如\ 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
我可以为所有转义字符重复这些内容,或创建另一种方法来完成此操作,但
无法完成相同的操作"\2010_12"
由python“读取”的转义为
"\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')
非常感谢帮助 Thanx提前
答案 0 :(得分:0)
你从哪里获得路径?来自用户的输入?
在这种情况下,有办法:
Python 2.7.1 (r271:86832, May 6 2011, 10:39:37)
[GCC 3.3.3 (SuSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> raw_input("filename: ")
filename: C:\tmp
'C:\\tmp'
>>> raw_input("output: ")
output: D:\Data\2010_12\Output
'D:\\Data\\2010_12\\Output'
还是你追求的其他东西?