我正在尝试一种有效的方法来删除数字日期或字符串中的任何其他字符,直到从结尾找到第一个字母。
字符串 - '12.abd23yahoo'
输出 - line_inp = "12.abd23yahoo 04/44 231"
line_out = line_inp.rstrip('0123456789./')
rstrip()
此'12.abd23yahoo 04/44 '
来电似乎没有按预期工作,我改为for fname in filenames:
with open(fname) as infile:
for line in infile:
outfile.write(line.rstrip('0123456789./ '))
。
我正在尝试下面,它似乎没有起作用。
insert into [table](ID,DATA)
values(23,'FOO'),(47,'ASD'),(54,'DSF')..,
on duplicate key update DATA=values(DATA)
答案 0 :(得分:1)
你也需要删除空格:
line_out = line_inp.rstrip('0123456789./ ')
演示:
>>> line_inp = "12.abd23yahoo 04/44 231"
>>> line_inp.rstrip('0123456789./ ')
'12.abd23yahoo'
答案 1 :(得分:0)
在编写之前,您需要删除换行符并重新添加:
for fname in filenames:
with open(fname) as infile:
outfile.writelines(line.rstrip('0123456789./ \n') + "\n"
for line in infile)
如果格式始终相同,则可以拆分:
with open(fname) as infile:
outfile.writelines(line.split(None, 1)[0] + "\n"
for line in infile)
答案 2 :(得分:-1)
以下是使用正则表达式的解决方案:
import re
line_inp = "12.abd23yahoo 04/44 231"
r = re.compile('^(.*[a-zA-Z])')
m = re.match(r, line_inp)
line_out = m.group(0) # 12.abd23yahoo
正则表达式匹配一组以字母结尾的任意字符。