我正在尝试从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:语法无效
我目前没有想法。有什么建议吗?
答案 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('"')