Определите функцию и используйте ее для нескольких файлов или модулей в Python - PullRequest
0 голосов
/ 26 октября 2019

Как создать функцию для форматирования файла Excel, которую можно использовать для нескольких файлов или модулей Python. Я могу понять проблему с переменными. Я ожидаю, что Python загружает переменные из основного файла.

Я определил одну функцию для форматирования листа Excel. он работает нормально, когда я использую его на том же модуле. но я хочу, чтобы эта функция использовалась для нескольких файлов.

Я использовал ниже код

#my function in a file myfunction

def myformatfunction():

    workbook = writer.book
    worksheet = writer.sheets['report']

    total_fmt = workbook.add_format({'align': 'right', 'num_format': '$#,##0',
                                 'bold': True, 'bottom':6})

    worksheet.set_column('A:F', 20)
    worksheet.set_column('G:G', 20, total_fmt)

    writer.save()

#this is my main file where i want to use defined function
# i have dataframe which will read excel file

writer = pd.ExcelWriter('E:/FunctionOut2.xlsx', engine='xlsxwriter')
df.to_excel(writer, index=False, sheet_name='report')


myformatfunction()

это работает нормально, когда я использую его на том же модуле. Как использовать его для нескольких файлов Python?

1 Ответ

0 голосов
/ 27 октября 2019

Если вам нужно использовать ту же функцию в других файлах Python, вы можете определить ее в другом файле и импортировать этот. Например, вы можете создать файл с именем «utils.py» в том же каталоге, что и файлы, в которых вы хотите его использовать, и определить свою функцию там. Скорее всего, файлы, в которых вы хотите использовать эту функцию, не находятся в одном каталоге. Вы можете поместить utils.py в более высокий каталог, доступный для всех из них, или добавить каталог, где utils.py находится в пути, где Python ищет импортированные модули.

Например:

src / utils / utils.py

def myfunction(parameters):
    # you'll also need params if you want to call if for different dataframes
    (...)
    return

src / files / file1.py (где вы будете вызывать функцию)

import sys
sys.path.append("src/utils") # this includes src/utils to the list of paths where python will look for the modules you want to import
from utils import * # or import myfunction only

(...)
myfunction(df)

В общем случае вы должны определить общие функции в отдельном файле и импортировать их в каждый файл, в котором вам нужны эти функции.

...