2010-09-12 80 views
0

我读取ini文件以在python中打开文件。 事情是,文件信息有时在“..”中,但有时它不是。如何检测文件路径是否用Python封装在“..”中?

例如,

fileA = "https://stackoverflow.com/a/b/c.txt" 
fileB = /a/b/d.txt 

有没有简单的方法来检测一个字符串被包裹在“..”,并返回报价字符串里面?

回答

3

简单检测将涉及检查s[:1] == s[-1:] == '"'(仔细切片,而不是索引,以避免例外,如果s是一个空字符串措辞的话),以及有条件的去除每端只有一个报价,如果一个出现在两端

if s[:1] == s[-1:] == '"': 
    s = s[1:-1] 

另外,在进场@马格努斯的回答,因为他说,删除所有前导和尾随报价,并无条件地这样做;因此,例如,如果s以三个引号开头,但不以任何结尾(并且在所有其他奇怪的情况下,除了所述的规格之外),我的答案中的片段不会更改s,@ Magnus的意志剥离三个主要报价。 “你付出你的钱,你选择了......”如果你不在意这种或那种方式(即你确信两个答案不同的情况是“完全不可能的”)。 ..),那么我认为@Magnus的抽象级别更高的方法更简洁(但是,这是一个风格问题 - 当你不关心不匹配或不平衡的引号时,他的方法和我的解决方案都是正确的Python解决方案;-) 。

+0

s [0] == s [-1] =='''会不一样,还是更好? – prosseek 2010-09-12 04:58:22

+0

@prosseek,如果有'len(s)== 0',会产生一个异常; if你神奇地确定不会发生,或者当's'是一个空字符串时_want_是一个异常,索引而不是切片可以更快。 – 2010-09-12 05:13:28

2

要删除所有前导和尾随报价:

fileA = fileA.strip('"') 
相关问题