Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #51994 > unrolled thread
| Started by | MRAB <python@mrabarnett.plus.com> |
|---|---|
| First post | 2013-08-06 03:19 +0100 |
| Last post | 2013-08-06 03:19 +0100 |
| Articles | 1 — 1 participant |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: Sort lines in a plain text file alphanumerically MRAB <python@mrabarnett.plus.com> - 2013-08-06 03:19 +0100
| From | MRAB <python@mrabarnett.plus.com> |
|---|---|
| Date | 2013-08-06 03:19 +0100 |
| Subject | Re: Sort lines in a plain text file alphanumerically |
| Message-ID | <mailman.227.1375755575.1251.python-list@python.org> |
On 06/08/2013 03:00, Devyn Collier Johnson wrote:
> I am wanting to sort a plain text file alphanumerically by the lines. I
> have tried this code, but I get an error. I assume this command does not
> accept newline characters.
>
>
> >>> file = open('/home/collier/pytest/sort.TXT', 'r').read()
That returns the file as a single string.
> >>> print(file)
> z
> c
> w
> r
> h
> s
> d
>
>
> >>> file.sort() #The first blank line above is from the file. I do not
> know where the second comes from.
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> AttributeError: 'str' object has no attribute 'sort'
>
Strings don't have a sort method.
> I had the parameters (key=str.casefold, reverse=True), but I took those
> out to make sure the error was not with my parameters.
>
> Specifically, I need something that will sort the lines. They may
> contain one word or one sentence with punctuation. I need to reverse the
> sorting ('z' before 'a'). The case does not matter ('a' = 'A').
>
> I have also tried this without success:
>
> >>> file.sort(key=str.casefold, reverse=True)
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> AttributeError: 'str' object has no attribute 'sort'
>
Try this:
lines = open('/home/collier/pytest/sort.TXT', 'r').readlines()
lines.sort()
Actually, a more Pythonic way these days is to use the 'with' statement:
with open('/home/collier/pytest/sort.TXT') as file:
lines = file.readlines()
lines.sort()
Back to top | Article view | comp.lang.python
csiph-web