[Tutor] compare and arrange file
Edgar Almonte
samudhio at gmail.com
Tue Jul 12 01:50:20 CEST 2011
Thanks for the hints , what i want accomplish is sort the line by the
same value in the column 2 and 3
i mean the line with the same value in the 2 get together with the
line in the same value in column 3
emile and david thanks again let me check the hint that your give me,
i will feedback the code if everything workout or else :D
On Mon, Jul 11, 2011 at 7:35 PM, Dave Angel <d at davea.name> wrote:
> 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.
>
> def splitline(line, z):
> if z == 0:
> pass
>
> fields = line.split('|')
> nlist = []
> for field in fields:
> nlist.append(field)
>
> 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 at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>
More information about the Tutor
mailing list