在Python中写入新目录而不更改目录

在Python中写入新目录而不更改目录,python,file,rss,io,directory,Python,File,Rss,Io,Directory,目前,我有以下代码 file_name = content.split('=')[1].replace('"', '') #file, gotten previously fileName = "/" + self.feed + "/" + self.address + "/" + file_name #add folders output = open(file_name, 'wb') output.write(url.read()) output.close() 我的目标是让python

目前,我有以下代码

file_name = content.split('=')[1].replace('"', '') #file, gotten previously
fileName = "/" + self.feed + "/" + self.address + "/" + file_name #add folders 
output = open(file_name, 'wb')
output.write(url.read())
output.close()
我的目标是让python将文件(在file_name下)写入当前目录“feed”文件夹中“address”文件夹中的一个文件(即保存python脚本的位置)


我已经查看了操作系统模块,但我不想更改当前目录,而且这些目录还不存在。

os.mkdir
这样的命令实际上并不要求您在当前目录中创建文件夹;您可以放置相对路径或绝对路径

os.mkdir('../new_dir')
os.mkdir('/home/you/Desktop/stuff')
除了自己编写这样一个函数之外,我不知道有什么方法可以递归地创建文件夹和打开文件——下面是大致的代码
os.makedirs
将为您提供最便捷的服务;使用你没有展示给我们的神秘自我对象:

dir = "/" + self.feed + "/" + self.address + "/"
os.makedirs(dir)
output = open(os.path.join(dir, file_name), 'wb')

首先,我不是100%相信我理解这个问题,所以让我陈述一下我的假设: 1) 您想写入一个尚未存在的目录中的文件。 2) 路径是相对的(相对于当前目录)。 3) 您不想更改当前目录

因此,鉴于: 查看这两个函数:os.makedirs和os.path.join。由于要指定相对路径(相对于当前目录),因此不希望添加初始“/”


这将在与当前脚本相同的目录中创建文件
feed/address/file.txt

import os

file_name = 'file.txt'
script_dir = os.path.dirname(os.path.abspath(__file__))
dest_dir = os.path.join(script_dir, 'feed', 'address')
try:
    os.makedirs(dest_dir)
except OSError:
    pass # already exists
path = os.path.join(dest_dir, file_name)
with open(path, 'wb') as stream:
    stream.write('foo\n')
如果dir存在,那么os.makdirs(dir\u path,exist\u ok=True)将不会引发OSError异常。默认情况下,如果目录存在,则引发OSError。
import os

file_name = 'file.txt'
script_dir = os.path.dirname(os.path.abspath(__file__))
dest_dir = os.path.join(script_dir, 'feed', 'address')
try:
    os.makedirs(dest_dir)
except OSError:
    pass # already exists
path = os.path.join(dest_dir, file_name)
with open(path, 'wb') as stream:
    stream.write('foo\n')