我正在阅读一个包含很多列的大型文本文件,这些列与美元相关,但我正在尝试弄清楚如何仅去除美元字段中的 $ 和 , 字符。
所以说我有:
a|b|c
$1,000|hi,you|$45.43
$300.03|$MS2|$55,000
其中 a 和 c 是美元字段而 b 不是。 输出需要是:
a|b|c
1000|hi,you|45.43
300.03|$MS2|55000
我在想正则表达式是可行的方法,但我不知道如何表达替换:
f=open('sample1_fixed.txt','wb')
for line in open('sample1.txt', 'rb'):
new_line = re.sub(r'(\$\d+([,\.]\d+)?k?)',????, line)
f.write(new_line)
f.close()
有人有想法吗?
提前致谢。
最佳答案
除非您真的想使用正则表达式,否则我建议您做一些简单、直接且通常易于阅读的事情:
def convert_money(inval):
if inval[0] == '$':
test_val = inval[1:].replace(",", "")
try:
_ = float(test_val)
except:
pass
else:
inval = test_val
return inval
def convert_string(s):
return "|".join(map(convert_money, s.split("|")))
a = '$1,000|hi,you|$45.43'
b = '$300.03|$MS2|$55,000'
print convert_string(a)
print convert_string(b)
输出
1000|hi,you|45.43
300.03|$MS2|55000
关于python - 在 Python 中如何仅从美元相关字段中去除美元符号和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644810/