open()で名前がdirectory / file_nameの形式であるファイルへの書き込みに失敗しました

user6948979

複雑なスクリプトの開発中に問題が発生し、数行で再現しました。

import os

i=2
content_pbs = "test"
os.popen('if [ -d f_bf_'+str(i)+' ]; then rm -rf f_bf_'+str(i)+\
         '; fi; mkdir f_bf_'+str(i)+';')
#Write to a file
f = open('f_bf_'+str(i)+'/my_pbs', 'w')
f.write(content_pbs)
f.close()

エラーは次のとおりです。

Traceback (most recent call last):
File "test.py", line 7, in <module>
f = open('f_bf_'+str(i)+'/my_pbs', 'w')
FileNotFoundError: [Errno 2] No such file or directory: 'f_bf_2/my_pbs'

popen置き換えるとsystem、エラーは表示されず、ファイルは正しく書き込まれます。またはf = open('my_pbs', 'w')、保持しながら変更するだけpopenで、エラーは発生せず、ファイルは良好に見えます。2.7.10で元のコードを実行すると、すべて問題ありません。私の質問は、元のスクリプトの何が問題になっているのかということです。参考までに、私はpython3.6.4を使用しています。多分それはバージョン3.6.4のバグです。

rnso

現在推奨されているsubprocess.Popen(https://docs.python.org/3.6/library/subprocess.htmlを使用することをお勧めします。たとえば、次のようになります。

def rnsystem (cmd, showoutput=True):
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, 
                              stderr=subprocess.PIPE, 
                              universal_newlines=True, 
                              shell=True)
    (out, err) = p.communicate()
    ret      = p.wait()
    out      = out.split('\n')
    err      = err.split('\n')
    ret_tf   = True if ret == 0 else False
    if showoutput: 
        if ret_tf:
            for o in out: 
                print(o)
        else: 
            for e in err: 
                print(e)
    return {'output': out, 'error': err, 'status': ret, 'status_tf': ret_tf}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JAVAPOIが大きなWordファイルの書き込みに失敗しました

分類Dev

Python が「FileNotFoundError」を引用してファイルへの書き込みに失敗する

分類Dev

AndroidconnectedAndroidTestがcom.android.ddmlib.InstallExceptionで失敗します:不明な失敗(エラー:書き込みに失敗しました;(そのようなファイルまたはディレクトリはありません))

分類Dev

£記号の付いたPython文字列/リストがファイルへの書き込みに失敗しましたか?

分類Dev

log4jがファイルへの書き込みに失敗する

分類Dev

Python:ファイルへの書き込みはエラーなしで失敗します-空のファイルを取得します

分類Dev

ファイルへの書き込み時にUTF8文字が失われました

分類Dev

C ++でファイルを再作成した後に失われるファイルへの書き込み権限

分類Dev

chkdskが「ファイル0の属性16に書き込めません。読み取り可能なファイルレコードセグメント0は書き込み可能ではありません」で失敗します。

分類Dev

Qt / C ++:QDomを使用したXMLファイルへの書き込みに問題があります

分類Dev

Python:ファイルへの書き込み時に出力を整列します(印刷ではありません)

分類Dev

ファイルの説明が正しくないため、Cの書き込み関数が失敗する

分類Dev

ファイルへの書き込み中に空白を削除すると、ファイルの読み取りに失敗するのはなぜですか?

分類Dev

bashおよびcurlコマンドでエラーが発生します:bash:/ dev / fd / 63:そのようなファイルまたはディレクトリはありません。curl:(23)本文の書き込みに失敗しました(0!= 8192)

分類Dev

NPGSQLを使用したPostgreSQLへのcsvファイルのコンテンツの書き込みが失敗する

分類Dev

NagiosQLのインストール:要件の確認。設定ファイル(config / settings.php)での書き込みテスト:失敗しました

分類Dev

anacondaへのパッケージのインストールが失敗します:condaにはファイル/ home / <編集済み> /。conda / pkgs /urls.txtへの書き込み権限がありません

分類Dev

書き込み権限を削除しても、rootによるファイルへの書き込みが妨げられることはありません

分類Dev

GoのCSVパーサーがファイルへの書き込みに失敗する

分類Dev

Pythonロギングが複数のログファイルへの書き込みに失敗する

分類Dev

プログラムがFORTRANのファイルへの書き込みに失敗する

分類Dev

正しい形式のjson情報を.jsonファイルに書き込んでローカルで読み取る方法はありますか?

分類Dev

読み込みに失敗しました。ファイルを認識できませんでした

分類Dev

データフレームをファイルに書き込もうとすると、org.apache.spark.SparkExceptionが発生します:行の書き込み中にタスクが失敗しました

分類Dev

Systemdサービススクリプトがファイルへの書き込みに失敗する

分類Dev

一時ファイルへの書き込みが拒否されました

分類Dev

変数を含むファイルへの新しい行の書き込みに問題がある

分類Dev

ファイルへの書き込み。ファイルを作成しますが、書き込みません

分類Dev

SFML-画像の読み込みに失敗しました-ファイルを開くことができません-LINUX

Related 関連記事

  1. 1

    JAVAPOIが大きなWordファイルの書き込みに失敗しました

  2. 2

    Python が「FileNotFoundError」を引用してファイルへの書き込みに失敗する

  3. 3

    AndroidconnectedAndroidTestがcom.android.ddmlib.InstallExceptionで失敗します:不明な失敗(エラー:書き込みに失敗しました;(そのようなファイルまたはディレクトリはありません))

  4. 4

    £記号の付いたPython文字列/リストがファイルへの書き込みに失敗しましたか?

  5. 5

    log4jがファイルへの書き込みに失敗する

  6. 6

    Python:ファイルへの書き込みはエラーなしで失敗します-空のファイルを取得します

  7. 7

    ファイルへの書き込み時にUTF8文字が失われました

  8. 8

    C ++でファイルを再作成した後に失われるファイルへの書き込み権限

  9. 9

    chkdskが「ファイル0の属性16に書き込めません。読み取り可能なファイルレコードセグメント0は書き込み可能ではありません」で失敗します。

  10. 10

    Qt / C ++:QDomを使用したXMLファイルへの書き込みに問題があります

  11. 11

    Python:ファイルへの書き込み時に出力を整列します(印刷ではありません)

  12. 12

    ファイルの説明が正しくないため、Cの書き込み関数が失敗する

  13. 13

    ファイルへの書き込み中に空白を削除すると、ファイルの読み取りに失敗するのはなぜですか?

  14. 14

    bashおよびcurlコマンドでエラーが発生します:bash:/ dev / fd / 63:そのようなファイルまたはディレクトリはありません。curl:(23)本文の書き込みに失敗しました(0!= 8192)

  15. 15

    NPGSQLを使用したPostgreSQLへのcsvファイルのコンテンツの書き込みが失敗する

  16. 16

    NagiosQLのインストール:要件の確認。設定ファイル(config / settings.php)での書き込みテスト:失敗しました

  17. 17

    anacondaへのパッケージのインストールが失敗します:condaにはファイル/ home / <編集済み> /。conda / pkgs /urls.txtへの書き込み権限がありません

  18. 18

    書き込み権限を削除しても、rootによるファイルへの書き込みが妨げられることはありません

  19. 19

    GoのCSVパーサーがファイルへの書き込みに失敗する

  20. 20

    Pythonロギングが複数のログファイルへの書き込みに失敗する

  21. 21

    プログラムがFORTRANのファイルへの書き込みに失敗する

  22. 22

    正しい形式のjson情報を.jsonファイルに書き込んでローカルで読み取る方法はありますか?

  23. 23

    読み込みに失敗しました。ファイルを認識できませんでした

  24. 24

    データフレームをファイルに書き込もうとすると、org.apache.spark.SparkExceptionが発生します:行の書き込み中にタスクが失敗しました

  25. 25

    Systemdサービススクリプトがファイルへの書き込みに失敗する

  26. 26

    一時ファイルへの書き込みが拒否されました

  27. 27

    変数を含むファイルへの新しい行の書き込みに問題がある

  28. 28

    ファイルへの書き込み。ファイルを作成しますが、書き込みません

  29. 29

    SFML-画像の読み込みに失敗しました-ファイルを開くことができません-LINUX

ホットタグ

アーカイブ