Hello,
The situation here is I have a file and each line has a 8 digit number in it (aorkey) the file is called target.lst In another file (file.lst) there are tons of paths in each path there is an aorkey (somewhere its not always in the same place and it is there more than once sometimes) I am trying to take the paths from file.lst that contain an aorkey found in target.lst and write them to a new file (called test.lst) The files look like:
target.lst
name 1 some folder 12345678
name 2 blah blah 87654321
and file.lst:
/home/machine/blah/00000001/blah_00000001/blah1.fits
/home/machine/blah/00000001/blah_00000001/blah2.fits
/home/machine/blah/00000002/blah_00000002/blah1.fits
/home/machine/blah/00000002/blah_00000002/blah2.fits
/home/machine/blah/12345678/blah_12345678/blah1.fits
/home/machine/blah/12345678/blah_12345678/blah2.fits
/home/machine/blah/00000003/blah_00000003/blah1.fits
/home/machine/blah/00000003/blah_00000003/blah2.fits
/home/machine/blah/87654321/blah_87654321/blah1.fits
/home/machine/blah/87654321/blah_87654321/blah2.fits
/home/machine/blah/00000004/blah_00000003/blah1.fits
/home/machine/blah/00000004/blah_00000003/blah2.fits
here is my code:
#!/usr/bin/python
#Filename: targetlistredux.py
#Copies entires for objects found in target.lst from file.lst
#to a new .lst file
import pylab #import nessacary packages
import matplotlib
import os
import sys
#define paramters (tempory)
targetname = 'target.lst'
orgFile = 'file.lst'
redFile = 'test.lst'
#initalize the list of desired objects
#identified via aorkeys
aorkeys = []
#extract desired aorkeys from target.lst
f = open(targetname,'r')
for line in f.readlines():
for i in line.split():
if i.isdigit() & (len(i) == 8):
aorkeys.append(i)
f.close()
#See if the output file already exists
if os.path.isfile(redFile):
flag = True
print
print redFile + " already exists and will be overwritten"
while flag:
ans = raw_input("Do you wish to continue? (y/n):")
if ans == 'y':
flag = False
elif ans == 'n':
sys.exit()
else:
print
print "invalid response..."
#ready the output and data source files
h = open(redFile,'w')
g = open(orgFile,'r')
#Search each entry in file.lst, if an entry is for a desired object
#add it to the output file
for j in range(0,len(aorkeys)):
temp = aorkeys[j]
print
for entry in g.readlines():
mark = True
print j
for k in range(0,(len(entry)-7)):
if (temp[0] == entry[k])&(mark):
valid = True
l = 1
while valid & (l<8):
q = k + l
if temp[l] == entry[q]:
pass
else:
valid = False
l = l + 1
#Write the desired entries into redFile
if valid & mark:
post = entry + '\n'
h.write(post)
mark = False
#print post
#close file handles
h.close()
g.close()
The aorkeys extract correctly, but only the first aorkey's paths get copied to the new file, im so lost! please help! We are running python 2.5 on debian linux