Hướng dẫn how do i change directory in python? - làm cách nào để thay đổi thư mục trong python?

Hướng dẫn how do i change directory in python? - làm cách nào để thay đổi thư mục trong python?

Trong bài viết này, chúng tôi sẽ thảo luận về cách thay đổi thư mục làm việc hiện tại trong Python.

Thư mục làm việc hiện tại là thư mục trong đó chương trình đang chạy.

Trước hết chúng ta cần nhập mô -đun HĐH Python, tức là.

import os

Mô -đun HĐH Python cung cấp một chức năng để thay đổi thư mục làm việc hiện tại, tức là.os module provides a function to change the current working directory i.e.

os.chdir(path)

Nó thay đổi thư mục làm việc hiện tại thành đường dẫn đã cho.

Hãy để hiểu bằng một ví dụ,

Quảng cáo

Đầu tiên in thư mục làm việc hiện tại bằng os.getcwd () tức là.

print("Current Working Directory " , os.getcwd())

Bây giờ, hãy để thay đổi thư mục làm việc hiện tại bằng cách sử dụng os.chdir (đường dẫn), tức là.

os.chdir("/home/varun/temp")

Nếu đường dẫn đã cho don lồng tồn tại thì Os.Chdir () có lỗi ném: FilenotFounderror. & Nbsp; do đó chúng ta nên gọi nó bằng cách sử dụng thử / ngoại trừ tức là.FileNotFoundError. Therefore we should either call it using try / except i.e.

try:
    # Change the current working Directory    
    os.chdir("/home/varun/temp")
    print("Directory changed")
except OSError:
    print("Can't change the Current Working Directory")        

hoặc kiểm tra xem thư mục mới có tồn tại trước khi thay đổi thư mục làm việc, tức là không.

# Check if New path exists
if os.path.exists("/home/varun/temp") :
    # Change the current working Directory    
    os.chdir("/home/varun/temp")
else:
    print("Can't change the Current Working Directory")    

Ví dụ hoàn chỉnh như sau,

import os

def main():
    
    print("Current Working Directory " , os.getcwd())
    
    
    try:
        # Change the current working Directory    
        os.chdir("/home/varun/temp")
        print("Directory changed")
    except OSError:
        print("Can't change the Current Working Directory")        

    print("Current Working Directory " , os.getcwd())
    
    # Check if New path exists
    if os.path.exists("/home/varun/temp") :
        # Change the current working Directory    
        os.chdir("/home/varun/temp")
    else:
        print("Can't change the Current Working Directory")    

        
    
    print("Current Working Directory " , os.getcwd())
    
if __name__ == '__main__':
    main()

Output:

Current Working Directory  /home/varun/Documents/blog/pythonSamples/FileSamples
Directory changed
Current Working Directory  /home/varun/temp
Current Working Directory  /home/varun/temp
& nbsp;
 

Thay đổi thư mục hiện tại của quá trình tập lệnh là tầm thường. Tôi nghĩ rằng câu hỏi thực sự là làm thế nào để thay đổi thư mục hiện tại của cửa sổ lệnh mà từ đó tập lệnh Python được gọi, điều này rất khó. Một tập lệnh dơi trong Windows hoặc tập lệnh bash trong shell bash có thể thực hiện điều này với lệnh CD thông thường vì bản thân shell là trình thông dịch. Trong cả Windows và Linux Python là một chương trình và không có chương trình nào có thể thay đổi trực tiếp môi trường của cha mẹ. Tuy nhiên, sự kết hợp của một tập lệnh shell đơn giản với tập lệnh Python thực hiện hầu hết các công cụ cứng có thể đạt được kết quả mong muốn. Ví dụ: để tạo một lệnh CD mở rộng có lịch sử truyền tải để xem lại lùi/chuyển tiếp/chọn, tôi đã viết một tập lệnh Python tương đối phức tạp được gọi bởi một tập lệnh dơi đơn giản. Danh sách truyền tải được lưu trữ trong một tệp, với thư mục đích trên dòng đầu tiên. Khi tập lệnh Python trở lại, tập lệnh dơi đọc dòng đầu tiên của tệp và biến nó thành đối số với CD. Tập lệnh dơi hoàn chỉnh (trừ ý kiến ​​cho sự ngắn gọn) là:

if _%1 == _. goto cdDone
if _%1 == _? goto help
if /i _%1 NEQ _-H goto doCd
:help
echo d.bat and dSup.py 2016.03.05. Extended chdir.
echo -C = clear traversal list.
echo -B or nothing = backward (to previous dir).
echo -F or - = forward (to next dir).
echo -R = remove current from list and return to previous.
echo -S = select from list.
echo -H, -h, ? = help.
echo . = make window title current directory.
echo Anything else = target directory.
goto done

:doCd
%~dp0dSup.py %1
for /F %%d in ( %~dp0dSupList ) do (
    cd %%d
    if errorlevel 1 ( %~dp0dSup.py -R )
    goto cdDone
)
:cdDone
title %CD%
:done

Tập lệnh Python, DSUP.Py là:

import sys, os, msvcrt

def indexNoCase ( slist, s ) :
    for idx in range( len( slist )) :
        if slist[idx].upper() == s.upper() :
            return idx
    raise ValueError

# .........main process ...................
if len( sys.argv ) < 2 :
    cmd = 1 # No argument defaults to -B, the most common operation
elif sys.argv[1][0] == '-':
    if len(sys.argv[1]) == 1 :
        cmd = 2 # '-' alone defaults to -F, second most common operation.
    else :
        cmd = 'CBFRS'.find( sys.argv[1][1:2].upper())
else :
    cmd = -1
    dir = os.path.abspath( sys.argv[1] ) + '\n'

# cmd is -1 = path, 0 = C, 1 = B, 2 = F, 3 = R, 4 = S

fo = open( os.path.dirname( sys.argv[0] ) + '\\dSupList', mode = 'a+t' )
fo.seek( 0 )
dlist = fo.readlines( -1 )
if len( dlist ) == 0 :
    dlist.append( os.getcwd() + '\n' ) # Prime new directory list with current.

if cmd == 1 : # B: move backward, i.e. to previous
    target = dlist.pop(0)
    dlist.append( target )
elif cmd == 2 : # F: move forward, i.e. to next
    target = dlist.pop( len( dlist ) - 1 )
    dlist.insert( 0, target )
elif cmd == 3 : # R: remove current from list. This forces cd to previous, a
                # desireable side-effect
    dlist.pop( 0 )
elif cmd == 4 : # S: select from list
# The current directory (dlist[0]) is included essentially as ESC.
    for idx in range( len( dlist )) :
        print( '(' + str( idx ) + ')', dlist[ idx ][:-1])
    while True :
        inp = msvcrt.getche()
        if inp.isdigit() :
            inp = int( inp )
            if inp < len( dlist ) :
                print( '' ) # Print the newline we didn't get from getche.
                break
        print( ' is out of range' )
# Select 0 means the current directory and the list is not changed. Otherwise
# the selected directory is moved to the top of the list. This can be done by
# either rotating the whole list until the selection is at the head or pop it
# and insert it to 0. It isn't obvious which would be better for the user but
# since pop-insert is simpler, it is used.
    if inp > 0 :
        dlist.insert( 0, dlist.pop( inp ))

elif cmd == -1 : # -1: dir is the requested new directory.
# If it is already in the list then remove it before inserting it at the head.
# This takes care of both the common case of it having been recently visited
# and the less common case of user mistakenly requesting current, in which
# case it is already at the head. Deleting and putting it back is a trivial
# inefficiency.
    try:
        dlist.pop( indexNoCase( dlist, dir ))
    except ValueError :
        pass
    dlist = dlist[:9] # Control list length by removing older dirs (should be
                      # no more than one).
    dlist.insert( 0, dir ) 

fo.truncate( 0 )
if cmd != 0 : # C: clear the list
    fo.writelines( dlist )

fo.close()
exit(0)

Làm cách nào để thay đổi thư mục trong thiết bị đầu cuối Python?

Sử dụng hàm chdir () trong Python để thay đổi thư mục làm việc hiện tại.Đường dẫn đến thư mục bạn muốn thay đổi là tham số duy nhất mà phương thức cho phép.Bạn có thể sử dụng đối số đường dẫn tuyệt đối hoặc tương đối.. The path to the directory you wish to change to is the only parameter the method allows. You can use either an absolute or relative path argument.

Làm cách nào để chuyển một tệp sang một thư mục khác trong Python?

Một cách nhanh chóng để di chuyển một tập tin từ nơi này sang nơi khác là sử dụng SOWL.MOVE () như được hiển thị:..
nhập khẩu.giao thoa.di chuyển ('old_directory/test_file.txt', 'new_directory/test_file.txt') ....
nhập khẩu.giao thoa.Di chuyển (Old_Path, New_Path) ....
Nhập hệ điều hành.hệ điều hành.....
Nhập hệ điều hành.hệ điều hành.....
Nhập Pathlib.Pathlib ..

Làm thế nào để bạn đi đến một thư mục tập tin trong Python?

Đường dẫn thư mục sử dụng một dấu gạch chéo về phía trước mà không đề cập đến hệ điều hành.Windows sử dụng dấu gạch chéo ngược để biểu thị các thư mục con, trong khi Linux sử dụng dấu gạch chéo phía trước.Nhưng trong Python, các dấu gạch chéo về phía trước luôn hoạt động, ngay cả trên Windows.forward slashes always work, even on Windows.

Làm cách nào để thay đổi thư mục từ C thành D trong Python?

Nếu bạn muốn thực hiện một cái gì đó như tùy chọn "cd ..", chỉ cần gõ: os.chdir ("..")os. chdir("..")