2013-01-08 52 views
-4

我有一个文本文件,需要追加才能导入到我的数据库中。文本文件中有大约4800条奇数行。数据在。有人可以帮我一个Python脚本,将:从.txt文件中使用Python删除文本2.7

  1. 读取文件
  2. 删除一切,除了与NDC,XXXXX-XXXX-XX线
  3. 写一个新的文件与数据NDC,XXXXX-XXXX -XX

请注意,NDC有一段时间是XXXX-XXXX-XX格式,有时候是XXXXX-XXXX-XX格式。

下面是一些数据:

NDC,0065-0795-50 

5.25667 
48320,2 
NDC,0517-2650-25 

0.0411 

NDC,51079-190-20 

0.1582 

NDC,0603-5450-21 

0.7924 
+4

不是真的 - 这是针对问题的自愿协助的问答形式,可以显示您的努力...我们可以看到您迄今为止所尝试的内容,否则这只会显示为“给我写代码”问题 –

+1

我有点困惑。如果一行有'NDC,XXXXX-XXXX-XX',你想写整行还是只写这部分?一条线可以有两个吗? – abarnert

+0

可能值得注意的是,对于'grep' /'ack','awk','sed'和/或其他简单Unix过滤器,您尝试执行的操作可能比Python更好。 – abarnert

回答

2
with open(inpath, 'r') as infile, open(outpath, 'w') as outfile: 
    for line in infile: 
     if 'NDC,' in line: 
      outfile.write(line) 

这使得一些假设:

  • 从未有与它'NDC,'除了你的价值观的任何随机文本。如果不是这样,你可能想写一个更智能的测试,可能使用regular expressions
  • 如果存在'NDC,'而不仅仅是该行的那部分,则要编写整行。如果不是这样,应该很容易调整 - 尤其是如果你已经完成了上述操作(因为那样你就可以写出,例如re而不是线)。
  • 等等...

由于您的问题是如此模糊,没有办法,只好让猜测那样,并有可能它们中的至少一个将是错误的。

但是这会告诉你程序的结构是什么样的,你应该能够自己填补空白。试试吧,如果你卡住了,请回来寻求帮助。

+0

其实我在这个问题上收回了我对你自己的评论 - 这符合OP的要求,所以+1,希望OP有足够的能力前进 –

+0

工程就像一个魅力。谢谢。你为我节省了几个小时的数据输入!下面是你的帮助及其结果的代码.--以open('c:\ NDCImportGarbageData.txt','r')作为infile,open('c:\ NDCImportCleanedData.txt','w')作为outfile: 对于infile中的行: if'NDC,in line: outfile.write(line) - 那么我不能在这里放置一个截图,但你明白了。再次谢谢你。 – Shaji