如何在Julia Jupyter Notebook中运行Python生成的Julia语法文本文件
Julia Jupyter Notebook 直接执行外部Julia语法文本文件的方法
你不需要手动复制文件内容,Julia原生支持直接读取执行符合语法规则的外部文本文件,哪怕文件后缀不是.jl也可以正常运行。
单个文件执行
直接使用Julia内置的include()函数即可,传入目标文件的路径,函数会自动读取文件内容、逐行执行合法的Julia代码,和你手动把内容复制到单元格运行效果完全一致。
示例代码:
# 执行当前工作目录下的单个测试文件 include("phylo_test_case_1.txt") # 如果文件不在当前工作路径,传入完整绝对路径即可,跨平台推荐用正斜杠写路径 # Windows示例:include("C:/project/phylo_tests/case_1.txt") # Mac/Linux示例:include("/home/xxx/project/phylo_tests/case_1.txt")
批量执行多个测试文件
如果要批量跑Python生成的大量测试文件,可以直接遍历目标文件夹,循环调用include即可,不需要手动逐个操作:
# 配置存放所有测试文本文件的文件夹路径 test_file_folder = "./python_generated_test_cases" # 遍历文件夹下所有txt格式的测试文件逐个执行 for file_path in readdir(test_file_folder, join=true) # 跳过非txt文件,按需修改筛选规则 endswith(file_path, ".txt") || continue println("当前执行测试文件:", file_path) include(file_path) # 此处可追加你的算法正确性校验逻辑,比如对比运行结果和预期值 end
避免变量名冲突的小技巧
如果不同测试文件里存在同名变量,担心批量运行时互相覆盖干扰结果,可以给每个文件的执行套独立的模块作用域,实现变量隔离:
for file_path in readdir(test_file_folder, join=true) endswith(file_path, ".txt") || continue # 创建一个独立的空模块作为当前测试文件的运行作用域 test_scope = Module() # 在独立作用域内执行测试文件代码 Base.include(test_scope, file_path) # 如需获取运行结果,从作用域中取出对应变量即可,比如测试文件里把结果存在result变量 # test_result = test_scope.result # 后续对test_result做正确性校验 end
注意:请确保Python输出文本文件时使用UTF-8编码,避免Julia读取文件时出现编码报错。
内容的提问来源于stack exchange,提问作者Noob
相关产品推荐
相关产品推荐

