MySQL: LOAD DATA INFILE + mysqlimport. Импорт данных из внешнего источника [дубликат]

Уже есть много ответов, которые расскажут вам, как сделать правильную копию, но никто из них не говорит, почему ваша оригинальная «копия» не удалась.

Python не сохраняет значения в переменных; он связывает имена с объектами. Ваше исходное назначение взяло объект, на который ссылается my_list, и связал его с new_list. Независимо от того, какое имя вы используете, остается только один список, поэтому изменения, сделанные при обращении к нему как my_list, будут сохраняться при обращении к нему как new_list. Каждый из других ответов на этот вопрос дает вам различные способы создания нового объекта для привязки к new_list.

Каждый элемент списка действует как имя, поскольку каждый элемент связывается не исключительно с объектом. Неглубокая копия создает новый список, элементы которого привязываются к тем же объектам, что и раньше.

new_list = list(my_list)  # or my_list[:], but I prefer this syntax
# is simply a shorter way of:
new_list = [element for element in my_list]

Чтобы сделать копию списка еще на один шаг, скопируйте каждый объект, на который ссылается ваш список, и привяжите эти копии элементов в новый список.

import copy  
# each element must have __copy__ defined for this...
new_list = [copy.copy(element) for element in my_list]

Это еще не глубокая копия, потому что каждый элемент списка может ссылаться на другие объекты, точно так же, как список привязан к его элементам. Чтобы рекурсивно скопировать каждый элемент в списке, а затем каждый другой объект, на который ссылаются каждый элемент, и т. Д .: выполните глубокую копию.

import copy
# each element must have __deepcopy__ defined for this...
new_list = copy.deepcopy(my_list)

Для получения дополнительной информации о копировании в окне [gg] см. документацию .

0
задан RiggsFolly 19 August 2014 в 17:25
поделиться

2 ответа

MySQL не может получить доступ к файлу в этом месте. Попробуйте переместить его где-то просто, как / tmp (или скопировать его) в локальную файловую систему, а не через параметр URL.

Процесс MySQL, вероятно, не может загружать папки перед «temp / file.csv»

1
ответ дан drmarvelous 21 August 2018 в 11:07
поделиться
  • 1
    Спасибо за ответ, найдете все варианты и опубликуйте решение, если я дам ей. – user2144332 21 August 2014 в 13:26
  1. Сохранить CSV-файл на локальном компьютере.
  2. Подключитесь к БД с вашего ЛОКАЛЬНОГО компьютера
  3. Выполните следующую команду: load data LOCAL infile '/tmp/file.csv' INTO TABLE table_name;

Вы также можете загружать файлы данных с помощью утилиты mysqlimport; он работает, отправив на сервер инструкцию LOAD DATA INFILE. Опция -local заставляет mysqlimport читать файлы данных с хоста клиента.

2
ответ дан Vadym Tyemirov 21 August 2018 в 11:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: