[Tutor] alphabetizing a file by lines
Dragonfirebane at aol.com
Dragonfirebane at aol.com
Sat Jul 17 22:22:45 CEST 2004
Hello all,
I'm trying to write a program that alphabetizes a file by the first letter on
each line. I'm having some problems because as soon as the program finds a
letter, it looks for the next letter, ignoring subsequent appearances of that
letter. I can think of a couple ways to fix this but none of them seem to work.
The first of these would be to add a special character to lines that have
already been alphabetized, but file.write() writes to the end of a file and i
would need to write the character at the current position in the file. This might
be circumvented by creating a file for each line that is alphabetized, but
that seems a bit extreme . . . The code is below. Any suggestions would be
appreciated. Future concerns will be alphabetizing past the first letter.
##############
def linum():
global i
linu = open("%s%s" % (fn, ext), "r")
i = 0
for line in linu.readlines():
i += 1
linu.close()
def alph():
alp = open("alphebatized%s%s" % (fn, ext), "w")
pal = open("prealp%s%s" % (fn, ext), "w") ## eventually for
writing "\xfe" after a line that has been alphabetized
read = open("%s%s" % (fn, ext), "r") ## same reason for
this line until read.close()
for line in read.read():
pal.write(line)
pal.close()
read.close()
print i
for do in range(i):
falp(alp)
alp.close()
def falp(alp):
global a
read = open("prealp%s%s" % (fn, ext), "r")
for line in read.readlines():
try:
alpn = re.compile("%s(?!\xfe)" % alpha[a], re.IGNORECASE)
falpn = alpn.match(line)
if falpn:
print line
alp.write(line)
a += 1
break
except IndexError:
pass
import re
import string
i = 0
a = 0
alpha = ' '.join(string.ascii_letters[:26]).split()
fn = raw_input("Please enter name of file you wish to prioritize: ")
ext = raw_input("Please enter extension of file you wish to prioritize: ")
linum()
alph()
################
Here is random.txt, the file being alphabetized:
K
cx
c
cd
e
X
y
v
l
f
w
Q
z
h
r
i
T
s
p
d
m
n
a
o
j
u
b
G
Thanks in advance,
Orri
Email: dragonfirebane at aol.com
AIM: singingxduck
Programming Python for the fun of it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20040717/00ccd201/attachment.htm
More information about the Tutor
mailing list