从字符串python中删除撇号

时间:2015-02-09 04:59:42

标签: python string

我正在尝试从python中的字符串中删除撇号。

以下是我要做的事情:

source = 'weatherForecast/dataRAW/2004/grib/tmax/'
destination= 'weatherForecast/csv/2004/tmax'

for file in sftp.listdir(source):
    filepath = source + str(file)
    subprocess.call(['degrib', filepath, '-C', '-msg', '1', '-Csv', '-Unit', 'm', '-namePath', destination, '-nameStyle', '%e_%R.csv'])

filepath目前以撇号包围的路径出现 即。

`subprocess.call(['', 'weatherForecast/.../filename')]`

我希望得到没有撇号的路径 即

subprocess.call(['', weatherForecast/.../filename)] 

我尝试了source.strip(" ' ", ""),但它并没有真正做任何事情。

我尝试过print(filepath)return(filepath),因为这些会删除撇号,但是他们给了我  语法错误。

filepath = print(source + str(file))
               ^

SyntaxError:语法无效

我目前没有想法。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

字符串对象的strip方法仅从字符串末尾删除匹配值,在第一次遇到非必需字符时停止搜索匹配。

要删除字符,请将其替换为空字符串。

s = s.replace("'", "")

答案 1 :(得分:0)

这个问题的公认答案实际上是错误的,并且可能引起很多麻烦。 strip方法removes as leading/trailing characters。因此,当您要从开头和结尾删除字符时就可以使用它。

如果改用replace,则将更改字符串中的所有字符。这是一个简单的例子。

my_string = "'Hello rokman's iphone'"
my_string.replace("'", "")

以上代码将返回Hello rokamns iphone。如您所见,您在s之前失去了引号。这并不是您所需要的东西。但是,您只能解析位置,而无需相信该字符。这就是为什么您当时可以使用的原因。

对于该解决方案,您所做的只是一件错误的事情。调用strip方法时,您在前后都留有空格。正确的使用方式应该是这样。

my_string = "'Hello world'"
my_string.strip("'")

但是,这假设您获得了',如果您从响应中得到",则可以像这样更改引号。

my_string = '"Hello world"'
my_string.strip('"')