Использование команды закрытия python (LPTHW ex 17 дополнительный кредит) [дубликат]

Вы можете добиться этого, используя динамический TSQL (не забудьте использовать QUOTENAME, чтобы избежать атак SQL-инъекций):

Свертывает динамические столбцы в SQL Server 2005

SQL Server - динамическая таблица PIVOT - SQL Injection

Обязательная ссылка на Проклятие и благословения динамического SQL

7
задан Boann 31 December 2013 в 04:38
поделиться

2 ответа

Когда вы выполняете file_content = open(from_file).read(), вы устанавливаете file_content на содержимое файла (как прочитано read). Вы не можете закрыть эту строку. Вам нужно сохранить файл отдельно от его содержимого, например:

theFile = open(from_file)
file_content = theFile.read()
# do whatever you need to do
theFile.close()

У вас есть аналогичная проблема с new_file. Вы должны отделить вызов open(to_file) от write.

0
ответ дан BrenBarn 27 August 2018 в 04:08
поделиться

open(...) возвращает ссылку на файл-объект, вызывая read, на котором читается файл, возвращающий строковый объект, вызывая write запись в него, возвращая None, ни один из которых не имеет атрибута close.

>>> help(open)
Help on built-in function open in module __builtin__:

open(...)
    open(name[, mode[, buffering]]) -> file object

    Open a file using the file() type, returns a file object.  This is the
    preferred way to open a file.

>>> a = open('a', 'w')
>>> help(a.read)
read(...)
    read([size]) -> read at most size bytes, returned as a string.

    If the size argument is negative or omitted, read until EOF is reached.
    Notice that when in non-blocking mode, less data than what was requested
    may be returned, even if no size parameter was given.
>>> help(a.write)
Help on built-in function write:

write(...)
    write(str) -> None.  Write string str to file.

    Note that due to buffering, flush() or close() may be needed before
    the file on disk reflects the data written.

Есть несколько способов исправить это:

>>> file = open(from_file)
>>> content = file.read()
>>> file.close()

или с python> = 2.5

>>> with open(from_file) as f:
...     content = f.read()

with сделает убедитесь, что файл закрыт.

1
ответ дан Pierre GM 27 August 2018 в 04:08
поделиться
Другие вопросы по тегам:

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