【问题标题】:String with Backslash and Quotes in Python is problems galorePython中带有反斜杠和引号的字符串是大量的问题
【发布时间】:2014-11-20 07:53:31
【问题描述】:

我有一个普通的字符串,我喜欢将它发送到一个程序,它只将我的字符串作为"\"text\"" 吃掉,就像那样。但是在 Python 中,我可以像这样 print 它,但我不能那样分配它。请参阅以下内容:

我的文字:

In [12]:

i = fieldList[0]
print str(i.name)
Y03M01D01

我可以将print 设为"\"text\""

In [13]:

field_new = '"\\"'+str(i.name)+'\\""'
print field_new
"\"Y03M01D01\""

但这就是它被程序吃掉的方式

In [14]:

field_new
Out[14]:
'"\\"Y03M01D01\\""'

这不等于"\"text\"",所以我的代码失败了。 有什么建议可以解决这个问题吗?

【问题讨论】:

  • 如何将字符串传递给程序?
  • 这里的目标是什么?您希望字符串中包含斜杠,还是只是使用它们来转义双引号?
  • 我认为reprstr 是问题所在,但您并不清楚您在问什么。
  • @mgilson 我想让字符串中有 2 个斜杠。 @Tzach 如果我发送"\"Y03M01D01\"",那么它会起作用,而当我发送field_new 时它不起作用

标签: python quotes backslash


【解决方案1】:

在比较中对字符串使用r 前缀将使python 将字符串视为原始字符串(所有反斜杠均未转义)。

>>> i = "text"
>>> field_new = '"\\"'+str(i)+'\\""'
>>> field_new
'"\\"text\\""'
>>> field_new == r'"\"text\""'
True

【讨论】:

  • 如果我在 IPython 中执行此操作,我会得到以下信息:In [4]: field_new = '"\\"'+str(i)+'\\""' In [5]: field_new Out[5]: '"\\"<geoprocessing describe field object object at 0x0CCE8C38>\\""'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2010-10-13
  • 2023-03-28
  • 2014-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多