Форум сайта python.su
0
Господа. Прошу помощи.
Ситуация следующая. есть программа 1 - в которой производятся определенные манипуляции с файлом. Текст уже очень большой, а написана она была для одного файла.
Сейчас назрела необходимость применить эту же программу, но к нескольким файлам. Голову сломал и вроде бы все перечитал про модули и нигде не смог найти как передать переменную в вызываемый модуль.
для примера:
# pr1.py
import xlrd
FileIn = r“c:\pyt” + “0115.xlsx”
rb = xlrd.open_workbook(FileIn)
sheet = rb.sheet_by_index(0)
………..
и дальше идет обработка таблицы.
хотел написать, предварительно убрав формирование строки FileIn из pr1.py :
# pr2.py
Month =
File01 = r“c:\pyt\0115.xlsx”
for i in range (len(Month)-1):
FileIn = FileIn01 + Month + FileIn01
import pr1
Но строка FileIn не передается в импортируемый модуль.
Есть варианты, как ее сделать видимой (общей) для всей среды?
P.S. отступы не отразились
Спасибо.
Отредактировано xxd103 (Фев. 12, 2016 08:50:40)
Офлайн
857
xxd103Надо её всю занести в функцию, а у функции сделать параметр.
есть программа 1 - в которой производятся определенные манипуляции с файлом.
#!/usr/bin/env python3 def f(name): print(name * 10) def main(): f('abc') if __name__ == '__main__': main()
[guest@localhost py]$ ./testfunc.py
abcabcabcabcabcabcabcabcabcabc
[guest@localhost py]$
>>> import testfunc >>> testfunc.f('x') xxxxxxxxxx >>> testfunc.f('123') 123123123123123123123123123123 >>>
Офлайн
0
тут придется весь программный код в pr1.py сдвигать вправо. это очень геморно. других нет вариантов?
Офлайн
857
xxd103Да, придётся. Можешь продолжать, конечно, планомерно строить один геморрой на другом, чтобы в конце вообще всё выкинуть.
тут придется весь программный код в pr1.py сдвигать вправо
Отредактировано py.user.next (Фев. 12, 2016 10:17:57)
Офлайн
0
py.user.next
Офлайн
857
xxd103Где-то пропустил wiki. структурное программирование
Просто я больше 20 лет не писал коды. и с ходу решил наскочить на питон.
Офлайн
253
xxd103Ничего это не геморно. Практически в любом нормальном тектовом редакторе выделяете все и жмете tab.
тут придется весь программный код в pr1.py сдвигать вправо. это очень геморно
Офлайн
857
doza_andМожно использовать sed
Практически в любом нормальном тектовом редакторе выделяете все и жмете tab.
sed -i~ '3,$s/^/ /' file.py
Отредактировано py.user.next (Фев. 13, 2016 02:15:05)
Офлайн