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

Python中如何让被调用脚本的输出保存至自身所在目录?

解决办法

办法一:让File1.py自己控制文件保存路径

问题出在File1.py里用了相对路径'1.txt',它会默认在当前运行的工作目录(也就是Run.py所在的文件夹)创建文件。要让它固定存在自己的目录下,可以通过__file__变量获取自身的路径,再拼接目标文件地址:

修改后的File1.py代码:

import csv
import os

# 获取当前脚本所在的文件夹
script_folder = os.path.dirname(os.path.abspath(__file__))
# 拼接出1.txt的完整路径
target_file = os.path.join(script_folder, '1.txt')

A=1
B=2
C=A+B
print(C)

with open(target_file, 'w') as f:
    writer = csv.writer(f)
    print(C)
    f.writelines('R'+ '\n')
    f.write(str(C))

这样不管你从哪个目录调用File1.py,1.txt都会乖乖出现在它自己的文件夹里。

办法二:在Run.py里指定子进程的工作目录

如果不想改File1.py的代码,也可以在调用它的时候,告诉子进程“去File1.py的文件夹里干活”,也就是用subprocess.run的cwd参数指定工作目录:

修改后的Run.py代码:

import subprocess
import os

# File1.py的完整路径
file1_full_path = r'C:\Users\USER\OneDrive - Technion\Research_Technion\Python_PNM\Sept15_2022\Test\1\File1.py'
# 提取它所在的文件夹
file1_folder = os.path.dirname(file1_full_path)

# 调用时指定工作目录为file1_folder
print(subprocess.run(['python', file1_full_path], cwd=file1_folder))

两种办法怎么选?

  • 要是File1.py以后可能被其他脚本调用,选办法一,让它自己管自己的文件路径,更独立。
  • 要是不能改File1.py的代码,就用办法二,只改调用它的Run.py就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:15:35