![](/img/trans.png)
[英]How to replace all characters except letters, numbers, forward and back slashes
[英]How to convert back-slashes to forward-slashes?
我在 python 中工作,我需要轉換它:
C:\folderA\folderB to C:/folderA/folderB
我有三種方法:
dir = s.replace('\\','/')
dir = os.path.normpath(s)
dir = os.path.normcase(s)
在每種情況下,輸出都是
C:folderAfolderB
我不確定我做錯了什么,有什么建議嗎?
我最近發現了這一點,並認為值得分享:
import os
path = "C:\\temp\myFolder\example\\"
newPath = path.replace(os.sep, '/')
print(newPath) # -> C:/temp/myFolder/example/
您的具體問題是replace
參數的順序和轉義,應該是
s.replace('\\', '/')
然后是:
posixpath.join(*s.split('\\'))
在 *nix 平台上相當於:
os.path.join(*s.split('\\'))
但不要在 Windows 上依賴它,因為它會更喜歡特定於平台的分隔符。 還:
請注意,在 Windows 上,由於每個驅動器都有一個當前目錄,因此 os.path.join("c:", "foo") 表示相對於驅動器 C: (c:foo) 上的當前目錄的路徑,而不是 c :\富。
嘗試
path = '/'.join(path.split('\\'))
路徑名稱在 Windows 中的格式不同。 解決方案很簡單,假設你有一個這樣的路徑字符串:
data_file = "/Users/username/Downloads/PMLSdata/series.csv"
只需將其更改為:(在路徑前面添加 r )
data_file = r"/Users/username/Downloads/PMLSdata/series.csv"
字符串前面的修飾符 r 告訴 Python 這是一個原始字符串。 在原始字符串中,反斜杠按字面意思解釋,而不是轉義字符。
要定義路徑的變量,您必須首先添加r
,然后在末尾添加替換語句.replace('\\', '/')
。
例如:
In>> path2 = r'C:\Users\User\Documents\Project\Em2Lph\'.replace('\\', '/')
In>> path2
Out>> 'C:/Users/User/Documents/Project/Em2Lph/'
此解決方案不需要額外的庫
很抱歉參加聚會遲到了,但我想知道沒有人建議使用 pathlib-library。
pathlib是“面向對象的文件系統路徑”的模塊
要將 windows 樣式(反斜杠)路徑轉換為正斜杠(通常用於 Posix-Paths),您可以使用 pathlib 以非常冗長(和平台無關)的方式執行此操作:
import pathlib
pathlib.PureWindowsPath(r"C:\folderA\folderB").as_posix()
>>> 'C:/folderA/folderB'
請注意,該示例使用字符串文字“r”(以避免將“\”用作轉義字符)在其他情況下,應正確引用路徑(使用雙反斜杠)“C:\\folderA\\folderB”
怎么樣 :
import ntpath
import posixpath
.
.
.
dir = posixpath.join(*ntpath.split(s))
.
.
這也可以工作:
def slash_changer(directory):
if "\\" in directory:
return directory.replace(os.sep, '/')
else:
return directory
打印(slash_changer(os.getcwd()))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.