Closed NakagawaKoumi closed 3 months ago
@NakagawaKoumi dcaspt2-input-generatorでsum-dirac-dfcoefを実行するときに使用しているPySide6のQProcess.startはそのまま文字列の配列を渡すと空白混じりのパスをうまく処理できないみたいですが QProcess.startCommandを使えばうまくいくことが分かったのでこれでOKだと思います
C:\'path with space' や "C:\path with space"などとクォートしないといけないかについては、クォーテーションしないと2つの別れた文字列であるとシェルの時点で理解してしまうのでクォートは必須です
(例)
PS C:\Users\noda> cd C:\Program Files\
Set-Location : 引数 'Files\' を受け入れる位置指定パラメーターが見つかりません。
発生場所 行:1 文字:1
+ cd C:\Program Files\
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Location]、ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
PS C:\Users\noda> cd "C:\Program Files\"
PS C:\Program Files>
つまりスペースをパスの文字列に含むファイルを指定したい場合、sum-dirac-dfcoefではクォートが必要であるという意味です。 ヘルプメッセージのインプットとアウトプットの例に関してクォートで囲むように変更してみます
@NakagawaKoumi
pip install -U dcaspt2_input_generator sum_dirac_dfcoef
dcaspt2_inputu_generatorでは、計算したoutputファイルからsum_dirac_dfcoefを実行したときに得られるデータを用いて表を作成していると思われる。ここで、outputファイルが名前にスペース(空白)が含まれるファイル下に置いてあるとエラーが起きるという問題が発生した。これは、sum_dirac_dfcoef実行時にプログラムがスペース部分で一つのファイルを区切り、複数のファイル名として認識してしまうためであると思われる。以下エラー文。 FileNotFoundError: [Errno 2] No such file or directory: 'C:\~~\.dcaspt2_input_generator\sum_dirac_dfcoef.out'
とりあえずの対応として、以下のことが可能であった。 ・outputファイルが含まれるファイル名のスペースをなくす
・先に自分でsum_dirac_dfcoefを実行し、得られたファイルをinput_generatorにかける。sum_dirac_dfcoef実行時、スペースが含まれるファイル名の部分を ’ ’ で囲み、一つのファイル名として認識させる(~\'file name'\~)必要がある ここで、
sum_dirac_dfcoef
だけでは、結果の記述形式がinput_generatorに対応していなかったため、sum_dirac_dfcoef -c
とする必要があった。 先にoutputファイルにsum_dirac_dfcoefを実行して得たファイルは、input_generatorを行う際にスペースが含まれているファイル下にあっても問題がなかった。