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

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)

6 Câu trả lời cho câu hỏi này.

Chỉ cần nhập mô -đun "HĐH" và nhập đường dẫn bạn muốn nó được thay đổi.

Nhập hệ điều hành

os.chdir(path)

Hy vọng nó hoạt động!!

Nếu bạn là người mới bắt đầu và cần biết thêm về Python, thì bạn nên tham gia Chứng nhận & NBSP; Python & NBSP; khóa học hôm nay.

Thanks!

Hướng dẫn how do i change a directory from c to d in python? - làm cách nào để thay đổi thư mục từ c thành d trong python?
đã trả lời ngày 14 tháng 4 năm 2018by anto.trigg4 • & nbsp; 3.440 điểm Apr 14, 2018 by anto.trigg4
• 3,440 points

Nếu bạn muốn thực hiện một cái gì đó như tùy chọn "CD ..", chỉ cần nhập:

os.chdir("..")

Nó giống như trong Windows CMD: CD .. Tất nhiên & NBSP; Nhập OS & NBSP;import os is neccessary (e.g type it as 1st line of your code)

Hướng dẫn how do i change a directory from c to d in python? - làm cách nào để thay đổi thư mục từ c thành d trong python?
Đã trả lời ngày 18 tháng 10 năm 2018by Neha Kerketta Oct 18, 2018 by Neha Kerketta

Trình quản lý bối cảnh: Nhập CD HĐH
import os

Class CD: & nbsp; & nbsp; & nbsp; & nbsp; "" "Trình quản lý bối cảnh để thay đổi thư mục làm việc hiện tại" "" & nbsp; & nbsp; & nbsp; & nbsp; def __init __ ;
    """Context manager for changing the current working directory"""
    def __init__(self, newPath):
        self.newPath = os.path.expanduser(newPath)

& nbsp; & nbsp; & nbsp; & nbsp; def __enter __ (self): ; & nbsp; & nbsp; os.chdir (self.newpath)
        self.savedPath = os.getcwd()
        os.chdir(self.newPath)

& nbsp;
        os.chdir(self.savedPath)

Hướng dẫn how do i change a directory from c to d in python? - làm cách nào để thay đổi thư mục từ c thành d trong python?
Đã trả lời ngày 18 tháng 10 năm 2018by Nabarupa Oct 18, 2018 by Nabarupa

Các câu hỏi liên quan trong Python

Làm cách nào để thay đổi đường dẫn của một thư mục trong Python?

Để thay đổi phương thức thư mục làm việc hiện tại (CWD) OS.Chdir () được sử dụng. Phương pháp này thay đổi CWD thành một đường dẫn được chỉ định. Nó chỉ lấy một đối số duy nhất làm đường dẫn thư mục mới.os. chdir() method is used. This method changes the CWD to a specified path. It only takes a single argument as a new directory path.

Làm thế nào để bạn thao tác một thư mục trong Python?

Thay đổi thư mục Chúng tôi có thể thay đổi thư mục làm việc hiện tại bằng cách sử dụng phương thức chdir ().Đường dẫn mới mà chúng tôi muốn thay đổi phải được cung cấp dưới dạng chuỗi cho phương pháp này.Chúng ta có thể sử dụng cả Slash phía trước / hoặc lùi lại \ để tách các phần tử đường dẫn.by using the chdir() method. The new path that we want to change into must be supplied as a string to this method. We can use both the forward-slash / or the backward-slash \ to separate the path elements.

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

Đặt đường dẫn tại Unix/Linux trong đường dẫn CSH - Nhập SetEnv "$ PATH:/usr/local/bin/python3" và nhấn enter.Trong vỏ Bash (Linux) - Loại xuất PythonPath =/usr/local/bin/python3.4 và nhấn Enter.Trong shell sh hoặc ksh - gõ path = "$ path:/usr/local/bin/python3" và nhấn enter.In the csh shell − type setenv PATH "$PATH:/usr/local/bin/python3" and press Enter. In the bash shell (Linux) − type export PYTHONPATH=/usr/local/bin/python3. 4 and press Enter. In the sh or ksh shell − type PATH = "$PATH:/usr/local/bin/python3" and press Enter.

Làm cách nào để thay đổi thư mục của tôi?

Sau đây là các ví dụ về cách sử dụng lệnh CD:..
Để thay đổi thư mục gia đình của bạn, hãy nhập như sau: CD ..
Để thay đổi thư mục /usr /bao gồm, nhập các mục sau: CD /usr /bao gồm ..
Để đi xuống một cấp độ của cây thư mục vào thư mục SYS, nhập các loại sau: CD SYS ..