如何从 main.py Bottle 调用具有多个功能的现有 python 文件
How do I call an existing python file with multiple functions from a main.py 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()
只是 import parse
,您不要将 .py
放在导入语句的末尾。由于您似乎只想使用函数而不是调用 parse.clean_up
,因此您可以改为 from parse import clean_up
。文件 parse
需要在您的本地目录中(您所在的 运行 是 python 解释器)或在您的 PYTHONPATH
环境变量中。
目前,我的代码是这样的,我上传了 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()
只是 import parse
,您不要将 .py
放在导入语句的末尾。由于您似乎只想使用函数而不是调用 parse.clean_up
,因此您可以改为 from parse import clean_up
。文件 parse
需要在您的本地目录中(您所在的 运行 是 python 解释器)或在您的 PYTHONPATH
环境变量中。