2013-12-18 4 views
0

Когда я добавляю элемент в список list.append() или list.insert() или любым другим способом, когда я загружаю файл, резервное копирование элемента, который я добавил в список, не существует. Также мне хотелось бы, чтобы список в другом файле на всякий случай имел какое-то значение.Python добавляет элементы в списки?

Код:

User = ["pig"] 
Pass = ["ham"] 
User.insert(len(User)+1, "cow") 
Pass.append("beef") 

Я знаю, как получить вещи из других файлов.

+1

http://www.mentalfloss.com/sites/default/legacy/blogs/wp-content/uploads/2010/02/400pancake_bunny. jpg –

+4

Первый запрос: не заглавные буквы имен переменных; соответствуют правилам стиля Python. Второй запрос: повторите свой вопрос, это имеет мало смысла. Когда вы говорите «загрузите файл обратно», вы имеете в виду снова запустить свой скрипт Python? – bedwyr

+1

Какой код вы используете для загрузки списков из файла? У вас есть код, который * сохраняет * список после того, как вы его изменили? –

ответ

1
try: #load list from file if it (the file) exists 
    my_list = json.load(open("my_database.dat")) 
except IOError: #otherwise create the list 
    my_list = [] 
... 
#save list for next time .. 
json.dump(my_list,open("my_database.dat","wb")) 

является одним из многих способов сделать это

вы также можете использовать Рассол

try: #load list from file if it (the file) exists 
    my_list = pickle.load(open("my_database.dat")) 
except IOError: #otherwise create the list 
    my_list = [] 
... 
#save list for next time .. 
pickle.dump(my_list,open("my_database.dat","wb")) 

или сделать это с ast.literal_eval

try: 
    my_list = ast.literal_eval(open("some_file").read()) 
except IOError: 
    my_list = [] 
... 
#save list 
with open("some_file","wb") as f: 
    f.write(repr(my_list)) 
0

Для простой сохраняемости данных между работает pickle в хорошем старте:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import pickle 

def main(): 

    # Load the file if it exists other initialise the list 
    try: 
     replicating_cow = pickle.load(open("cows.p", "rb")) 
    except IOError: 
     replicating_cow = [] 

    replicating_cow.append('cow')       # Add another cow 
    print replicating_cow         # Print the list  
    pickle.dump(replicating_cow, open("cows.p", "wb")) # Save the list to disk 

if __name__ == "__main__": 
    main() 

После каждого запуска мы получаем новую корову:

$ python replicate_cow.py 
['cow'] 

$ python replicate_cow.py 
['cow', 'cow'] 

$ python replicate_cow.py 
['cow', 'cow', 'cow'] 

$ python replicate_cow.py 
['cow', 'cow', 'cow', 'cow'] 
+0

Извините, что я нажал кнопку в случайном порядке, это говорит Pass = pickle.load (открыть («Пароль.p»)) TypeError: 'str' не поддерживает интерфейс буфера – user3116196

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