Python 将文件输出到另一个目录
我有一个python脚本,我编写了它,它将使用以下两行代码生成一个输出文件到一个名为test的新目录: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:
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]之类的东西来修剪存储/部件