2015-06-08 200 views
0

我正在尝试使用windows内置搜索功能来制作一个简单的gui。这是我遇到的问题。Python删除引号

#gets search keywords from user input and splits into list 
keyword_list = self.entry.get() 
    keyword_list = keyword_list.split() 

    #creates empty string 
    keyword_string = "" 

    #fills empty string with list, appends necessary quotation marks 
    for i in keyword_list: 
     keyword_string += "\"" + i + "\"" 

    print(keyword_string) 

    #runs cmd query of windows index 
    subprocess.call("c:/users/jdoe/desktop/wssql.exe " + 
        "\"select system.ItemPathDisplay from systemindex 
        where contains(*,'" + 
        keyword_string + 
        "')\"") 

与该代码,如果我输入两个关键词到输入域,说“测试1”和“测试2”蟒蛇将打印keyword_string就象这样:

“测试1”“测试2”

但是,当在查询中使用keyword_string它显示为这样:

test1test2

因此,打印命令后的地方,Python是剥离报价三月ks从字符串?

+2

'testvariable'定义在哪里? – Kevin

+0

对不起。这是懒惰校对的错误。应该读“keyword_string”。将解决。 – Volkisch

回答

0

您是否尝试过使用两套引号?或者一组双引号内的一组单引号?

+0

在双引号作品中使用单引号! 我尝试了我所知道的引号中的所有引号,并且认为我会分享与其他人发生的事情。 转义它们将连接两个字符串,并在打印和发送到查询之间的某个位置剥去引号。 使用三重引号会导致字符串消失,并且查询为空(查询的最后一个paranthesis消失,我发现它很奇怪)。 在单引号内使用双引号连接字符串并剥离最后一个引号,但不是第一个引号(再次,我发现奇数)。 – Volkisch