2012-05-06 3 views
0

У меня есть два файла, которые я хочу сравнить друг с другом и сформировать список. Каждый файл имеет свой собственный класс. Книга и человек. В них у меня разные атрибуты. Я хочу сравнить: person.personalcode == book.borrowed. Из этого я хочу список всех заимствованных книг. Я начал вот так:Сравните два файла и сделайте список

for person in person_list: 
    for book in booklibrary_list: 
     if person.personalcode == book.borrowed: 
      person.books.append(book, person) 

for person in person_list: 
    if len(person.books) > 0: 
     print(person.personalcode + "," + person.firstname + person.lastname + "have borrowed the following books: ") 
     for book in person.books: 
      print(book) 

for person in person_list: 
    person.books = [] 

Но это не работает, что я пропустил или сделал неправильно?

+0

Является ли 'person_list' файловым объектом? Если это так, 'person' является строкой и, следовательно, не имеет атрибута' personalcode'. –

+9

Сообщение, как оно не работает. Если есть ошибка, опубликуйте ее. Если результат не соответствует ожидаемому, напишите, что вы получили и что хотите. – Daenyth

+0

человек - мой класс, а персональный код - это атрибут. – user1370721

ответ

1

Публикация в качестве ответа, поскольку это слишком долго для комментария.

Во-первых: улучшите свой вопрос. Покажите, как вы создаете класс Person и Book, и как их заполнять. Опишите, что такое персональный код, и почему персональный код будет таким же, как и код книги. Некоторые примеры данных и немного больше кода облегчат ответ.

Во-вторых: считывая other question, вы, кажется, сохраняете свои данные в текстовом файле, загружаете и запрашиваете, изменяете и сохраняете данные напрямую. Это приведет вас к проблемам и вместо этого вы должны рассмотреть спускаясь один из двух линий:

  1. использовать базу данных SQL, возможно, проще всего начать с SQLite, поскольку он не нужен сервер должен быть создан и существует это module in the standard library that is very easy to use. Храните ваши данные там, и вам будет легче в долгосрочной перспективе.
  2. Используйте объекты Python (например, три класса: Person, Book и BorrowedBook), управляйте их списками в рамках программы и используйте shelve из стандартной библиотеки для хранения и извлечения этих списков объектов между запросами.

Использование полки было бы проще, если бы вы раньше не использовали SQL, и я надеюсь, что вы простите каламбур, когда я скажу, что это может быть очень полезно для приложения, связанного с книгой!

+0

+1 для обоснования для полки. –

Смежные вопросы