如何用字符串中的换行符替换短划线字符?

时间:2015-07-09 00:41:42

标签: python

我正在尝试用换行符替换文本中的所有短划线,但它无法正常工作。为什么不?

f = open('phrases.txt').readlines()
f = [f.strip('\n').lower() for f in f]
f = f.replace('- ','\n')
g = open('text.txt').read()
for phrase in f:
    if phrase in g:
        print(phrase)

3 个答案:

答案 0 :(得分:0)

替换应该应用于字符串,而不是列表。同样使用一个变量名称(即f)进行翻转不是一个好习惯:

f = open('conditions.txt').readlines()
f = [a_line.strip('\n').lower().replace('-', '\n') for a_line in f]

答案 1 :(得分:0)

file = open('conditions.txt','r')
lines = file.readlines()
text = "".join(lines)
finaltext = text.replace("-","\n")

答案 2 :(得分:0)

我刚才遇到了同样的问题,但问题不在于语法问题与我遇到的具体角色有关。

确保您遇到的角色是短划线-,而不是unicode em dash 甚至是unicode长划线

而不是使用string.replace('-', '')我必须使用string.replace(u'\u2014', '')

要检查,请打印角色的.encode()。真正的短划线将显示b'-'