0

我想\n从开头删除这样的行\n id int(10) NOT NULL。我试过了strip(),,,rstrip()lstrip() replace('\n', '')我不明白。我究竟做错了什么?

print(column)
print(column.__class__)
x = column.rstrip('\n')
print(x)
x = column.lstrip('\n')
print(x)            
x = column.strip('\n')          
print(x)
print(repr(column))

\n  id int(10) NOT NULL
<type 'str'>
\n  id int(10) NOT NULL
\n  id int(10) NOT NULL
\n  id int(10) NOT NULL
\n  id int(10) NOT NULL
'\\n  `id` int(10) NOT NULL'
4

1 回答 1

8

您确定这\n是换行符而不是文字\后跟文字n吗?在这种情况下,你会想要:

s = r'\nthis is a string'
s = s.strip()
print s
s = s.strip(r'\n')
print s

可能更好的方法是在剥离之前检查它是否开始\n,然后使用切片:

if s.startswith(r'\n'): s = s[2:]

甚至更强大的是re.sub

re.sub(r'^(?:\\n)+','',r'\n\nfoobar')

根据您上面描述的症状,我几乎肯定是这种情况。

于 2012-11-05T22:12:31.893 回答