Python 将文件输出到另一个目录

Python 将文件输出到另一个目录,python,bash,file-io,Python,Bash,File Io,我有一个python脚本,我编写了它,它将使用以下两行代码生成一个输出文件到一个名为test的新目录: self.mkdir_p("test") # create directory named "test" file_out = open("test/"+input,"w") mkdir_p函数如下所示: def mkdir_p(self,path): try: os.makedirs(path) except OSError as exc:

我有一个python脚本,我编写了它,它将使用以下两行代码生成一个输出文件到一个名为test的新目录:

self.mkdir_p("test") # create directory named "test"
file_out = open("test/"+input,"w")
mkdir_p函数如下所示:

def mkdir_p(self,path):
    try:
        os.makedirs(path)
    except OSError as exc:
        if exc.errno == errno.EEXIST:
            pass
        else: raise
现在,我想让脚本运行的所有文件都存储在名为storage的目录中,我的问题是,如何编写一个脚本,使我可以从python脚本所在的主目录运行存储中的所有文件,并将所有输出保存到测试目录中,就像我在python脚本中编写代码一样

我在bash中采用了一种天真的方法,比如:

#!/bin/bash

# get the directory name where the files are stored (storage)
in=$1

# for files in (storage) directory
for f in $1/*

do

  echo "Processing $f file..."
  ./my_python_script.py $f

done
它没有工作并抛出IOError:没有这样的文件或目录:“test/storage/inputfile.txt”

我希望我把我的问题解释得足够清楚


提前感谢

$f是storage/inputfile.txt,Python在test/前面加了前缀,然后因为test/存储不存在而抱怨。创建目录,或在创建输出文件名之前剥离目录部分。

您需要对本地路径或全局路径进行编码以进行测试。我建议你走全球路径。所以/home/user/../test/顺便说一句,您应该将$f的报价加倍。这可能是无害的,但你应该养成一个习惯。所以现在我删除了目录创建部分,即self.mkdir_ptest行,并在运行脚本之前创建了目录,但它仍然会给我带来同样的问题..嗯?您需要使用basename=input.split'/'[-1]之类的东西来修剪存储/部件