QProcess
コマンドを実行するために a を使用しようとしていますmkdir
(Linux を使用しています)。このプロセスにより、ユーザーのデスクトップに「output」というフォルダーが作成されます。コードは次のようになります。
def mkOutput():
# get the user's environmental variables
env = QtCore.QProcessEnvironment.systemEnvironment()
proc = QtCore.QProcess()
proc.setProcessEnvironment(env)
# find the HOME variable, append it to args
HOME = env.value('HOME', defaultValue='./')
args = "/Desktop/output/"
args = HOME+args
proc.setStandardOutputFile('out.txt')
proc.setStandardErrorFile('err.txt')
proc.start("mkdir", args)
proc.waitForFinished()
out.txt は空ですが、err.txt は次のように読み取ります。
/usr/bin/mkdir: cannot create directory ‘/’: File exists
/usr/bin/mkdir: cannot create directory ‘o’: File exists
/usr/bin/mkdir: cannot create directory ‘t’: File exists
/usr/bin/mkdir: cannot create directory ‘p’: File exists
/usr/bin/mkdir: cannot create directory ‘u’: File exists
/usr/bin/mkdir: cannot create directory ‘t’: File exists
/usr/bin/mkdir: cannot create directory ‘/’: File exists
mkdir
何らかの理由で、文字列全体を使用するのではなく、引数の各文字に対して実行しようとしています。args
変数に対して str() を使用しようとしましたが、何も機能していないようです。プログラムを実行するディレクトリに複数のフォルダーを作成するたびに。