我的数据位于http://people.stern.nyu.edu/ja1517/data/marketing.data,我已将其保存为marketing.data.txt
我想删除包含NA的行。我写了一个6行的python脚本,但它没有用。
任何人都可以指出我的错误吗?
import re
f = open('marketing.data.txt')
g = open('marketing_complete.txt', 'w')
for line in f:
if re.search('NA', line) is None:
g.write(line)
我知道这没有用,因为我在命令行尝试了以下操作。
grep 'NA' marketing_complete.txt | wc -l
返回3 ...... :(
答案 0 :(得分:3)
您不需要re
来执行此操作:
f = open('marketing.data.txt')
g = open('marketing_complete.txt', 'w')
for line in f:
if 'NA' not in line:
g.write(line)
最好使用上下文管理器打开文件:
with open('marketing.data.txt') as f:
with open('marketing_complete.txt', 'w') as g:
for line in f:
if 'NA' not in line:
g.write(line)
答案 1 :(得分:3)
你可以grep它 -
grep -v NA marketing.data.txt > marketing_complete.txt
答案 2 :(得分:3)
如果你已经在捣蛋,那就去做:
grep -v NA marketing.data.txt > marketing_complete.txt
'-v'选项会反转搜索,因此只打印不匹配的行。
答案 3 :(得分:1)
对于你的if语句,请尝试
if 'NA' not in line: