On 19/07/14 22:27, LN A-go-go wrote:
AK 36
AL 39
AR 39
AZ 45
CA 61
CO 54
# and now my newbie attempt:
# I can get this far in approach #1
>>> filename = "z:/Geog482/egund919/Program1/BOJ.txt"
>>> myfile = open(filename,"r")
>>> newfile = "z:/Geog482/egund919/Program1/BOJ_B.txt"
>>> mynewfile = open(newfile,"w")
>>> while True:
line = myfile.readline()
print line
mynewfile.write(line)
if not line: break
States OJ
AK 36
Assuming this is the output... where does the first
line come from?
Its not in your data above and you don't print it?
So either your data is not the real data or the code
is not the real code.
Either case makes it difficult for us to work out what is
really going on.
UT 34
VA 53
VT 67
WA 58
WI 56
WV 43
WY 33
If this is the output what exactly is "wrong" with it?
Apart from the first line anomaly it looks exactly like
what I'd expect.
In approach number 2: trying to append, convert to integer, but the list
comes up empty:
>>> infile = open('C:/Python27/egund919/Program1/BOJ_B.txt','r')
>>> import string
Don't import string. Use the string methods instead.
>>> state_name = []
>>> data_value = []
>>> counter = 0
>>> x = 0
>>> line = infile.readline()
>>> while True:
line = infile.readline()
if not line: break
It would be easier to use enumerate and a for loop:
for counter, line in enumerate(infile):
counter = counter + 1
States, OJ = string.split(line)
XSTATES = str(States)
XNUM = int(OJ)
By convention all caps means a constant value. These obviously
change so it would be better to name them xstates and xnum.
Also since there is only one state per line it should be
xstate rather than xstates. Just minor style points.
state_name.append(XSTATES)
data_value.append(XNUM)
You could use a dictionary here instead of two lists.
states = dict()
for counter,line in ....
...
states[xtstate] = xnum
>>> type(data_value)
<type 'list'>
>>> print(data_value)
[]
This suggests your loop exited on the first iteration.
Is there a blank line at the start of the file?
This is another reason why using a for loop is better,
it wouldn't get caught out that way.
>>> print (line)
All I get is errors from here on out.....
Tell us what the errors are. If they are actual Python
error messages then show us the full error message - it
is full of useful data. If they are just errors in the
sense that they are not what you expected, then tell us
what you expected and show us what you got.
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor