You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

分子写入脚本调用open()方法即终止问题求助

问题分析与解决

你的脚本移出项目目录后执行open()时终止,核心原因有两个:

  • 转义字符解析错误:Python字符串里的\是转义符,直接写"Molekuele\\"会被错误解析,导致路径识别异常。
  • 相对路径依赖工作目录:脚本运行时的当前工作目录(非脚本所在目录)可能不包含Molekuele文件夹,相对路径无法定位到目标目录。

具体修复方案

1. 修复路径转义问题

把路径中的\替换为以下任意一种写法:

  • 用原始字符串:在路径前加r,让Python不解析转义符,比如r"Molekuele\\"
  • 用正斜杠:Python跨平台支持正斜杠作为路径分隔符,比如"Molekuele/"
  • 用双反斜杠:手动转义,比如"Molekuele\\\\"

2. 绑定路径到脚本所在目录(推荐)

如果Molekuele文件夹和脚本在同一目录下,用os模块获取脚本的绝对路径,再拼接目标文件路径,这样不管脚本在哪运行都能找到目标文件夹。

修改后的代码如下:

import os

first_line_form_display = ["  "]

for i in range(9):
    first_line_form_display += ["  "]
    first_line_form_display += [str(i+1)+" "]

form_display = [first_line_form_display]

for i in range(9):
    form_display += [[]]
    for j in range(19):
        form_display[2*i+1] += ["  "]
    form_display += [[str(i+1)+" "]]
    for j in range(18):
        form_display[2*i+2] += ["  "]

molecule_name = input("Enter the name of the molecule: ")

# 获取脚本所在目录的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 自动拼接目标文件路径,适配不同系统的路径分隔符
file_path = os.path.join(script_dir, "Molekuele", f"{molecule_name}.txt")

# 用with语句自动管理文件,无需手动close
with open(file_path, "w") as create_molecule:
    create_molecule.write("")

with open(file_path, "a") as save_molecule:
    for i in range(len(form_display)-1):
        save_molecule.write("  ")
        for j in range(len(form_display[i+1])-1):
            save_molecule.write(form_display[i+1][j+1])
        save_molecule.write("\n")

额外优化说明

  • 用with语句操作文件,自动处理文件关闭,避免资源泄漏
  • 用os.path.join()拼接路径,自动适配Windows/Linux/macOS的路径规则,提升跨平台兼容性

内容的提问来源于stack exchange,提问作者Kamikatze255

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 07:27:52