我刚刚在Python中经历了一种奇怪的行为。
我在包含初始脚本的文件夹中的子文件夹中创建了script.py文件的副本。
最后的脚本使用以下命令将一些数据导出到.txt文件中:
with open('clayList.2203.txt', 'w',encoding='utf-8') as f:
for item in claysUniqueList:
f.write("%s\n" % item)
问题是Python将新文件写入父目录而不是当前目录。我检查了路径:
print(sys.path[0])
并正确打印当前路径。
默认情况下,相对路径相对于工作目录,即运行脚本的命令运行的目录。
如果您希望路径是脚本目录中的相对路径,则必须显式编码此行为:
import os
filepath = os.path.join(os.path.dirname(__file__), 'clayList.2203.txt')
with open(filepath, 'w',encoding='utf-8') as f:
# ...
创建文件的路径应该相对于执行目录
例如你的pwd是父,你的脚本在parent / child1 / child2 / script.py中,那么要创建的文件的路径应该是./child1/child2/clayList.2203.txt