从 .txt 中删除引号

Remove quotation mark from .txt

我有一个具有以下行类型的 txt 文件:

"Hello I'm in Tensorflow"
"My name is foo"
'Mr "alias" is running'
...

所以可以看出,每行只有一个字符串。当我尝试创建 tf.data.Dataset 时,输出如下所示:

conver = TextLineDataset('path_to.txt')
for utter in conver:
    print(utter)
   break
# tf.Tensor(b'"Hello I'm in Tensorflow"', shape=(), dtype=string)

如果你注意到,引号 " 仍然存在于字符串的开头和结尾(加上由张量定义的 ')。我想要的输出是:

# tf.Tensor(b'Hello I'm in Tensorflow', shape=(), dtype=string)

即不带引号。 提前谢谢你

eval() 函数应该可以做到。

for utter in conver:
    print(eval(utter))
   break

或者您可以简单地使用 replace -

for utter in conver:
    print(utter.replace('"',''))
   break

如果要保留字符串中不在结尾或字符串开头的引号 -

for utter in conver:
    print(''.join([utter[i] if not (utter[i] == '"' and (i==0 or i==len(utter)-1)) else '' for i in range(len(utter))]))
  break

您可以使用 tf.strings.regex_replace:

import tensorflow as tf
conver = tf.data.TextLineDataset('/content/text.txt')

def remove_quotes(text):
  text = tf.strings.regex_replace(text, '\"', '')
  text = tf.strings.regex_replace(text, '\'', '')
  return text

conver = conver.map(remove_quotes)
for s in conver:
  print(s)
tf.Tensor(b'Hello Im in Tensorflow', shape=(), dtype=string)
tf.Tensor(b'My name is foo', shape=(), dtype=string)
tf.Tensor(b'Mr alias is running', shape=(), dtype=string)

或者,如果您只想删除前导引号和尾随引号,请尝试以下操作:

text = tf.strings.regex_replace(text, '^[\"\']*|[\"\']*$', '')