Это для сокращения. В with open (файл, режим) as ...
после as задаётся "псевдоним/alias", под которым программа будет работать с этим файлом, открытом в нужном режиме.
А получается, что псевдоним это check_domains, который уже ранее задан как новое имя файлаcheck_domains = 'check_' + sys.argv[1]
Вместо for check_domain in check_domains нужно брать элементы из списка доменов, который передаётся в функцию save_list(file, domain_list)вторым аргументом
и в самом скрипте разве не должен сначала составляться список а потом писаться в файл ? Тут же получается, что список при срабатывании if каждый раз в текущем виде пишется в файл. Теоретически, при последнем шаге файл будет правильным, потому что список к этому временим будет полным, но так нет смысла делать, надо писать после обработки списка.
if (check_domain(domain) == 1):
domain_list.append(domain)
save_list(check_domains, domain_list)
А функция наверное так должна выглядеть
def save_list(file, domain_list): #на входе имя файла, список доменов для записи
with open(file, 'w') as f:
for item in domain_list:
f.write('%s\n' % item)
#закрывать файл после записи не надо, конструкция with open сама его закроет
Issue, ты открываешь файл на запись, но check_domains же название файла check_domains = 'check_' + sys.argv[1]. Обычно делают with open (file, т.е. путь файла заданный в check_domains ...) ... as f.... f.write(....)
Надо проследить, как задаётся img.
В тексте var уже существует, к нему применяется метод get (взять ключ словаря с таким-то значением), но в get() нужен аргумент, а тут его нет.
if var.get()==1:
img=PhotoImage(file="flowers.png")
if var.get()==2:
img=PhotoImage(file="cake.png")
if var.get()==3:
img=PhotoImage(file="landscape.png")
return возвращает значение, которое вычисляет функция, включая пустое значение.
def func1:
....
...
return...
str() преобразует число в строку, чтобы с этим новым объектом можно было работать как со строкой, например, вставлять в текст, брать из него символ с такой-то позиции (индекса).
Почитай, что такое кортежи и как с ними работать. Если известно, что нужно брать int из первого, т.е. с нулевым индексом, элемента, и первый элемент уже типа int, тогда просто a=(520989095,)[0].
Преобразовать же сам кортеж в тип int нельзя, т.к. кортеж это несколько элементов. В int можно преобразовать только конкретный элемент такого-то уровня (в случае вложенных элементов).
Tim245, pandas это модуль, его нужно установить через pip или easy install которые в папке python\scripts
Pandas в данном случае может использоваться для удобной обработки таблицы результатов выборки из базы sql.
Как выше сказали, если есть точная позиция символа в строке, после которого брать, то можно просто операцией со строкой как со списком символов. Но лучше изучить регулярные выражения, они универсальны.
Файл уже прочитан. Но это не текстовый файл, его содержимое можно посмотреть только в программе, поддерживающей .DOC, но не в консоли. Можно вызвать её из скрипта и указать в качестве аргумента путь к сохранённому файлу. Соответсвенно, для этого его нужно сохранить на диске и открывать оттуда.
Может быть, есть какие-то библиотеки, которые могут извлечь текст из DOC, или можно найти утилиту для конвертации DOC в TXT и его можно вывести в консоль, но какой в этом смысл ?
Тогда попробовать посмотреть как та функция загружает этот csv в датафрейм, что там с разделителем, типами данных, столбцами. Дата, т.е. столбец с датой, временем может использоваться в качестве индекса. Здесь, насколько понимаю, столбец индекс именуется datе, так тоже можно.
Сорри, возможно, неправильно объяснил. Смысл в том, что конструкции с "плейсхолдерама" в примерах выше можно создавать и без непосредственного задавания переменных (которые в правой части), о чём я не знал.
Нет, просто задание шаблона, а указание переменной в правой части уже при непосредственной подстановке. Выше написали, что это можно сделать и без указания переменной, а переменную потом использовать. Т.е. это мне и требовалось.
...
query1='That is %s bird!'
...
for t in tables:
cur.execute(query1 % t)
спасибо, я это имел ввиду, но спрашивал, можно ли реализовать такой плейсхолдер без указания конкретной переменной в правой части, если она пока не задана. Например, если шаблон в тексте программы задаётся раньше, чем создаётся (выбирается из списка, словаря, другого источника.) конкретная переменная (значение) для вставки в шаблон
with open (файл, режим) as ...
после as задаётся "псевдоним/alias", под которым программа будет работать с этим файлом, открытом в нужном режиме.
А получается, что псевдоним это check_domains, который уже ранее задан как новое имя файла
check_domains = 'check_' + sys.argv[1]
Вместо for check_domain in check_domains нужно брать элементы из списка доменов, который передаётся в функцию
save_list(file, domain_list)
вторым аргументоми в самом скрипте разве не должен сначала составляться список а потом писаться в файл ? Тут же получается, что список при срабатывании if каждый раз в текущем виде пишется в файл. Теоретически, при последнем шаге файл будет правильным, потому что список к этому временим будет полным, но так нет смысла делать, надо писать после обработки списка.
А функция наверное так должна выглядеть