3

I am reading through a csv file and writing results to a logfile, "p.log". Although I am converting the data into a string before writing it to the file, and doing so successfully through several iterations, I keep running into a situation where I eventually get this error: AttributeError: 'int' object has no attribute 'write'.

I will provide a snippet of my code as well as the result printed to my screen:

p=open("p.log","w")

for line in f:#parse lines following the headerline
    line = line.split(",")
    print line, type(str(line))
    p.write('string: '+str(line)+'\n')

['14-04-21 08:30:00.973000', 'EEM06211440.5P', 'EEM', '2014-06-21', '40.50', 'P', '16084', 'AUTO', 'PHLX', '0.82', '10', '0.82', '31', '0.88', '31', '0.06', '0.00', '0.06', 'Y', 'AN', '2', 'AN', '2', 'Bid', '31', '0.0000', '2', 'AN\r\n'] <type 'str'>
['14-04-21 08:30:00.974000', 'MU06211425C', 'MU', '2014-06-21', '25.00', 'C', '0', 'AUTO', 'PSE', '1.57', '11', '1.56', '11', '1.67', '30', '0.11', '0.01', '0.10', 'Y', 'Z', '1', 'IXH', '3', 'Mid', '0', '0', '0', '\r\n'] <type 'str'>
['14-04-21 08:30:00.975000', 'QQQ04251481C', 'QQQ', '2014-04-25', '81.00', 'C', '1585', 'AUTO', 'AMEX', '5.70', '1', '5.20', '82', '5.70', '67', '0.50', '0.50', '0.00', 'Y', 'AINX', '4', 'AINX', '4', 'Ask', '67', '-22.3881', '4', 'AINX\r\n'] <type 'str'>
['14-04-21 08:30:00.976000', 'MPEL05171435.66C', 'MPEL', '2014-05-17', '35.66', 'C', '409', 'AUTO', 'ISE', '2.20', '20', '2.20', '384', '3.10', '20', '0.90', '0.00', '0.90', 'N', 'AI', '2', 'I', '1', 'Bid', '384', '94.7917', '2', 'AI\r\n'] <type 'str'>
['14-04-21 08:30:00.978000', 'AAPL7071914500C', 'AAPL', '2014-07-19', '500.00', 'C', '670', 'AUTO', 'AMEX', '34.85', '3', '34.15', '1', '35.05', '12', '0.90', '0.70', '0.20', 'Y', 'A', '1', 'A', '1', 'Mid', '0', '0', '0', '\r\n'] <type 'str'>
Traceback (most recent call last):
  File "q1.py", line 83, in <module>
    p.write('string: '+str(line)+'\n')
AttributeError: 'int' object has no attribute 'write'

As you can see there are several lines printed without fail, until the line with 'AAPL' in it. Not sure why there's an error on this line and not others.

1
  • Show us the code where you declare the file handle p Commented Apr 21, 2014 at 19:42

1 Answer 1

7

Somewhere in the code you didn't post is a line that overwrites your variable p with an integer.

Sign up to request clarification or add additional context in comments.

1 Comment

thanks, I found I forgot there was another variable named p buried in my code

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.