如何从main.py Bottle调用具有多个函数的现有python文件

时间:2017-11-23 16:33:00

标签: python routes bottle

目前,我的代码是这样的,我上传了2个文件但我需要通过另一个具有多个功能的现有parse.py文件在临时文件中处理它们。

如何在Templates.py中调用它们?

我尝试添加import parse.py但会出错。

templates.py

@route('/')
def index():
return template('index')

@route('/', method='POST')
def upload():
incfile = request.files.get('uploadinc')
datfile = request.files.get('uploadhex')

macro, ext1 = os.path.splitext(incfile.filename)
data, ext2 = os.path.splitext(datfile.filename)
if ext1 not in ('.txt'):
    return 'File extension not allowed.'
if ext2 not in ('.txt'):
    return 'File extension not allowed.'
incfile.filename = 'macro.txt'
datfile.filename = 'data.txt'

curr_dir = os.getcwd()
print(curr_dir)
temp_dir = os.path.join(curr_dir, r'temp01')
if os.path.exists(temp_dir):
   shutil.rmtree(temp_dir)
os.makedirs(temp_dir)

incfile.save(temp_dir)  
datfile.save(temp_dir)   
clean_up(temp_dir)  // gives error

@route('/')
def clean_up():      // gives error

parse.py

 import os, sys, re, binascii

 def clean_up():

    if os.path.exists("dataparse.txt"):
            os.remove("dataparse.txt")
    else:
            print("Creating new files...")

    if os.path.exists("out3.txt"):
            os.remove("out3.txt")
    else:
            print("Creating new files...")

def parse_hexdump():
    a = open("data.txt","r")
    b = open("dataparse.txt","a")
    w = open("out3.txt","a")
   str = a.readline()
   w.write(str)
   for line in a:
   if line.startswith('MD') or line.startswith('END OF DISPLAY'):
     continue
   else:
     strline = line[5:40:]  # Slice lines from 5-40 to another file
     b.write(strline+'\n')
  b.close()
  w.close()

1 个答案:

答案 0 :(得分:1)

只是import parse,您不能将.py放在导入声明的末尾。由于您似乎只想使用函数而不是调用parse.clean_up,因此您可以改为from parse import clean_up。文件parse需要位于您的本地目录(您运行python解释器的位置)或PYTHONPATH环境变量中。