2014-02-04 5 views
0

Цель состояла в том, чтобы импортировать INFILE, читать и печатать только две строки в outfile.This код, который я имел в IDLE:Ошибка при использовании '<file> .readlines() функции

def main(): 
    infile = open('names.py', "r") 
    outfile = open('orgnames.py', "w") 
    for i in range (2): 
     line = ("names.py".readlines()) 
     print (line[:-1], infile = outfile) 
    infile.close() 
    outfile.close() 
main() 

Это сообщение об ошибке я получаю:

Traceback (most recent call last): 
File "C:/Python33/studentnames6.py", line 11, in <module> 
    main() 
File "C:/Python33/studentnames6.py", line 6, in main 
    line = ("names.py".readlines()) 
AttributeError: 'str' object has no attribute 'readlines' 

Я использовал функцию readlines в подобной ситуации раньше, и она работала отлично. Я не понимаю, почему у него сейчас ошибка, или как это исправить.

+0

Может быть, должно быть 'infile.readlines()', 'не«names.py».readlines()' (который пытается вызова функции строкового объекта вместо дескриптор файла)? –

+0

Имя файла не является файлом – JBernardo

ответ

2

Ошибка в том, что names.py является строкой, а не файловым объектом. Следующий код должен работать для вас:

def main(): 
    infile = open('names.py', "r") 
    outfile = open('orgnames.py', "w") 

    # Prints the first two lines in outfile 
    for line in infile.readlines()[:2]: 
     outfile.write(line) 

    infile.close() 
    outfile.close() 

main()