Shaji
Shaji

Reputation: 761

Python Read File, Look up a String and Remove Characters

I have a set of numbers (NDC - drug numbers) that have a - in them. I am trying to read the file, remove the - and write the numbers to a new file. Any help with this would be appreciated. Using Py 2.7

1. 68817-0134-50
2. 68817-0134-50
3. 68817-0134-50

The issue is that the hyphen is not always in the same position.

1. 8290-033010

It changes and can be in any position

with open('c:\NDCHypen.txt', 'r') as infile,
     open('c:\NDCOnly.txt', 'w') as outfile:
    replace("-", "")

Upvotes: 5

Views: 51988

Answers (2)

pts
pts

Reputation: 87311

with open(r'c:\NDCHypen.txt', 'r') as infile, \
     open(r'c:\NDCOnly.txt', 'w') as outfile:
    data = infile.read()
    data = data.replace("-", "")
    outfile.write(data)

To prevent the conversion of line endings (e.g. between '\r\n' and \n'), open both files in binary mode: pass 'rb' or 'wb' as the 2nd arg of open.

Upvotes: 18

neeagl
neeagl

Reputation: 348

You can do it easily with a shell script which would be must faster than a python implementation. Unless you have something more with the script, you should go with the shell script version.

However, with Python it would be:

with open('c:\NDCHypen.txt', 'r') as infile, open('c:\NDCOnly.txt', 'w') as outfile:
    temp = infile.read().replace("-", "")
    outfile.write(temp)

Upvotes: 12

Related Questions