On 07/11/2011 06:39 PM, Emile van Sebille wrote:
On 7/11/2011 3:16 PM Edgar Almonte said...
hello , i have a file this a structure like this
XXXXXXXXX XXXX| 0000000000000.00| 0000000088115.39|
XXXXXXXXX XXXX| 0000000090453.29| 0000000000000.00|
XXXXXXXXX XXXX| 0000000000000.00| 0000000090443.29|
XXXXXXXXX XXXX| 0000000088115.39| 0000000000000.00|
XXXXXXXXX XXXX| 0000000000000.00| 0000000088335.39|
XXXXXXXXX XXXX| 0000000090453.29| 0000000000000.00|
XXXXXXXXX XXXX| 0000000088335.39| 0000000000000.00|
XXXXXXXXX XXXX| 0000000090443.29| 0000000000000.00|
now i need re-arrange the file in this way:
XXXXXXXXX XXXX| 0000000000000.00| 0000000088115.39|
XXXXXXXXX XXXX| 0000000088115.39| 0000000000000.00|
XXXXXXXXX XXXX| 0000000000000.00| 0000000090453.29|
XXXXXXXXX XXXX| 0000000090453.29| 0000000000000.00|
etc....
It's not obvious to me for your sample what you want. For example,
the 2nd value 0000000090453.29 from the re-arranged group doesn't
appear in the top sample.
If I venture a guess, it seems to me that you want the debits and
corresponding offsetting credits listed in sequence.
In pseudo-code, that might me done as:
read lines from file
for each line in lines
set flag to D or C based on values
set sortkey to value+flag
append sortkey and line to decorated list
sort decorated list
for key,line in decorated list
print line
HTH,
Emile
i try this
http://pastebin.com/2mvxn5GY
but without look
I also can't see any pattern in the data to give a clue what kind of
filtering you're trying to do. A more specific spec would be useful.
I can comment on your pastebin code, however. You should have pasted it
in your message, since it's short.
1.
def splitline(line, z):
2.
if z == 0:
3.
pass
4.
5.
fields = line.split('|')
6.
nlist = []
7.
for field in fields:
8.
nlist.append(field)
9.
10.
return nlist[z]
The whole loop with nlist is a waste of energy, as you already got a
list from split(). You could replace the function with
def splitline(line, z):
return line.split('|')[z]
The if z==0 doesn't do anything either. Perhaps you meant to do some
error checking in case the line doesn't have at least z fields.
But the real problem in your code is the you posted for loop. The inner
loop takes multiple passes through the orig1 file, but the second time
won't get anything, since the file is already positioned at the end.
I'd simply move the open statement inside the outer loop.
There may be other problems, but that could get you going.
DaveA
--
DaveA
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor