Hướng dẫn how do i convert a string to a backslash in python? - làm cách nào để chuyển đổi một chuỗi thành dấu gạch chéo ngược trong python?

54

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang làm việc trong Python và tôi cần chuyển đổi điều này:

C:\folderA\folderB to C:/folderA/folderB

Tôi có ba cách tiếp cận:

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)

Trong mỗi kịch bản, đầu ra đã được

C:folderAfolderB

Tôi không chắc mình đang làm gì sai, bất kỳ đề xuất nào?

Hướng dẫn how do i convert a string to a backslash in python? - làm cách nào để chuyển đổi một chuỗi thành dấu gạch chéo ngược trong python?

Martineau

Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges

Hỏi ngày 5 tháng 8 năm 2014 lúc 19:39Aug 5, 2014 at 19:39

3

Gần đây tôi đã tìm thấy điều này và nghĩ rằng đáng để chia sẻ:

import os

path = "C:\\temp\myFolder\example\\"
newPath = path.replace(os.sep, '/')
print(newPath)  # -> C:/temp/myFolder/example/

Hướng dẫn how do i convert a string to a backslash in python? - làm cách nào để chuyển đổi một chuỗi thành dấu gạch chéo ngược trong python?

Martineau

Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges

Hỏi ngày 5 tháng 8 năm 2014 lúc 19:39May 7, 2018 at 19:27

Gần đây tôi đã tìm thấy điều này và nghĩ rằng đáng để chia sẻ:Numabyte

Đã trả lời ngày 7 tháng 5 năm 2018 lúc 19:275 silver badges6 bronze badges

1

Numabytenumabyte

s.replace('\\', '/')

7505 huy hiệu bạc6 Huy hiệu đồng

posixpath.join(*s.split('\\'))

Vấn đề cụ thể của bạn là thứ tự và thoát khỏi các đối số

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
6 của bạn, nên

os.path.join(*s.split('\\'))

Sau đó có:

Mà trên nền tảng *Nix tương đương với:

Nhưng đừng dựa vào điều đó trên Windows vì nó sẽ thích bộ phân cách dành riêng cho nền tảng. Cũng thế:Aug 5, 2014 at 19:47

Lưu ý rằng trên Windows, vì có một thư mục hiện tại cho mỗi ổ đĩa, os.path.join ("C:", "foo") đại diện cho một đường dẫn so với thư mục hiện tại trên ổ đĩa C: (c: foo), không phải c : \ foo.Jason S

Đã trả lời ngày 5 tháng 8 năm 2014 lúc 19:472 gold badges35 silver badges42 bronze badges

3

Jason Sjason s

path = '/'.join(path.split('\\'))

13.2k2 Huy hiệu vàng35 Huy hiệu bạc42 Huy hiệu đồngAug 5, 2014 at 19:41

ThửTheoretiCAL

Đã trả lời ngày 5 tháng 8 năm 2014 lúc 19:418 gold badges38 silver badges63 bronze badges

1

Lý thuyết

data_file = "/Users/username/Downloads/PMLSdata/series.csv"

18.1k8 Huy hiệu vàng38 Huy hiệu bạc63 Huy hiệu Đồng

data_file = r"/Users/username/Downloads/PMLSdata/series.csv"

Tên đường dẫn được định dạng khác nhau trong Windows. Giải pháp rất đơn giản, giả sử bạn có một chuỗi đường dẫn như thế này:

Đơn giản là bạn phải thay đổi nó thành điều này: (thêm r trước đường dẫn)Jun 28, 2018 at 7:39

Hướng dẫn how do i convert a string to a backslash in python? - làm cách nào để chuyển đổi một chuỗi thành dấu gạch chéo ngược trong python?

Các điều chỉnh trước khi chuỗi nói với Python rằng đây là một chuỗi thô. Trong các chuỗi thô, dấu gạch chéo ngược được giải thích theo nghĩa đen, không phải là một nhân vật trốn thoát.scapa

Đã trả lời ngày 28 tháng 6 năm 2018 lúc 7:391 silver badge6 bronze badges

1

Scapascapa

1191 Huy hiệu bạc6 Huy hiệu đồng is a module for "Object-oriented filesystem paths"

Xin lỗi vì đã trễ bữa tiệc, nhưng tôi tự hỏi không ai đề xuất thư viện pathlib.

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
0

Pathlib là một mô-đun cho "Đường dẫn hệ thống tập tin hướng đối tượng"

Để chuyển đổi từ Windows-Style (Backslash) -path thành những lần trượt chuyển tiếp (thường là cho các đường dẫn POSIX), bạn có thể làm như vậy theo kiểu rất dài dòng (và độc lập nền tảng) với Pathlib:May 14, 2021 at 14:55

Xin lưu ý rằng ví dụ sử dụng "r" theo nghĩa là chuỗi (để tránh có "\" làm đường thoát) trong các trường hợp khác, đường dẫn nên được trích dẫn đúng (với dấu gạch chéo ngược lại) "Stefan

Đã trả lời ngày 14 tháng 5 năm 2021 lúc 14:552 silver badges8 bronze badges

2

Stefanstefan

1212 Huy hiệu bạc8 Huy hiệu Đồng

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
1

Để xác định biến của đường dẫn, bạn phải thêm

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
7 ban đầu, sau đó thêm câu lệnh thay thế
dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
8 ở cuối.

Ví dụ:Mar 21, 2018 at 10:53

Giải pháp này không yêu cầu thư viện bổ sungMohammad ElNesr

Đã trả lời ngày 21 tháng 3 năm 2018 lúc 10:533 gold badges27 silver badges44 bronze badges

1

Mohammad Elnesrmohammad Elnesr

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
2

2.3773 huy hiệu vàng27 Huy hiệu bạc44 Huy hiệu đồngSep 28, 2017 at 6:29

Hướng dẫn how do i convert a string to a backslash in python? - làm cách nào để chuyển đổi một chuỗi thành dấu gạch chéo ngược trong python?

1

Bạn nghĩ thế nào về :

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
3

print(slash_changer(os.getcwd()))

Đã trả lời ngày 28 tháng 9 năm 2017 lúc 6:29Nov 19, 2021 at 22:04

Hướng dẫn how do i convert a string to a backslash in python? - làm cách nào để chuyển đổi một chuỗi thành dấu gạch chéo ngược trong python?

Điều này cũng có thể hoạt động:

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
4

result:

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)
5

Đã trả lời ngày 19 tháng 11 năm 2021 lúc 22:04Mar 26 at 11:02

Làm thế nào bạn có thể đặt một ký tự dấu gạch chéo ngược trong một chuỗi?

Nếu bạn muốn bao gồm một ký tự dấu gạch chéo ngược, bạn cần hai dấu gạch chéo ngược hoặc sử dụng chuỗi @ nguyên văn: var s = "\\ nhiệm vụ";// hoặc var s = @"\ nhiệm vụ";Đọc tài liệu MSDN/C# Thông số kỹ thuật thảo luận về các ký tự được thoát ra bằng ký tự dấu gạch chéo ngược và việc sử dụng chuỗi nguyên văn theo nghĩa đen.you need two backslashes or use the @ verbatim string: var s = "\\Tasks"; // or var s = @"\Tasks"; Read the MSDN documentation/C# Specification which discusses the characters that are escaped using the backslash character and the use of the verbatim string literal.

Làm thế nào để bạn viết một dấu gạch chéo ngược đôi như một chuỗi trong Python?

Điều này là do \ 2 có một ý nghĩa đặc biệt trong chuỗi Python.Nếu bạn muốn chỉ định \ thì bạn cần đặt hai \ trong chuỗi của mình.Đây là một chuỗi "thô" và rất hữu ích trong các tình huống mà bạn cần sử dụng nhiều dấu gạch chéo ngược như với các chuỗi biểu thức thông thường.put two \\ in your string. This is a "raw" string, and very useful in situations where you need to use lots of backslashes such as with regular expression strings.