-1
votes

Chemin qui ne change pas (Os.chDir)

Pour la dernière pièce #Imprimer (New_Path), la sortie est "Aucun". Peut-on m'expliquer en détail la raison de la survenue de cette erreur. Merci d'avance.

import os
def rename_files():
    file_list = os.listdir(r"C:\Users\NISARG\Desktop\WinPython\prank")
    #print(file_list)

    saved_path= os.getcwd()
    print(saved_path)

    new_path= os.chdir(r"C:\Users\NISARG\Desktop\WinPython\prank")
    print(new_path)


2 commentaires

C'est parce que vous créez déjà un chemin.


@vipulprajapati: Non, ce n'est pas ça. Aucun répertoire n'est créé.


3 Réponses :


5
votes
os.chdir(r"C:\Users\NISARG\Desktop\WinPython\prank")    
new_path = os.getcwd()
print(new_path)
os.chdir operates by side-effect and always returns None. If you want the current working dir after a chdir you must ask for it.

0 commentaires

0
votes

c'est-à-dire parce que os.chdir () code> ne renvoie aucune valeur. Vous trouverez ci-dessous la solution.

import os

def rename_files():
    file_list = os.listdir(r"H:\RishikeshAgrawani\Projects\GenWork\Python3")
    #print(file_list)

    saved_path= os.getcwd()
    print(saved_path) # H:\RishikeshAgrawani\Projects\GenWork\Python3

    os.chdir(r"H:\RishikeshAgrawani\Projects")
    new_path = os.getcwd()
    print(new_path)   # H:\RishikeshAgrawani\Projects

rename_files()


0 commentaires

0
votes

OS.CHDIR () CODE> retourne Aucun code> dans tous les cas.

Si vous souhaitez savoir quel répertoire votre programme est actuellement dans votre programme, vous devez appeler OS.GETCWD () code> . P>

En outre, si vous souhaitez vous assurer que votre programme passe à l'annuaire de travail d'origine en toute sécurité, vous pouvez utiliser un contextlib.contextManager : p> xxx pré>

qui montrera le comportement suivant: p>

Before context manager: /
Inside context manager: /home
After context manager: /


0 commentaires