目錄
回复内容:
首頁 後端開發 Python教學 为什么Python读取绝对路径要用正斜杠?

为什么Python读取绝对路径要用正斜杠?

Jun 06, 2016 pm 04:23 PM
python windows

windows目录都是反斜杆 ( \ )来分隔一个个子目录的
而到了 Python 或者 R 就需要使用正斜杆( / )来表示
这其中是否有什么原因?

回复内容:

因为 backslash 是邪路。你可能要说 Windows 比 Unix 进入 PC 还早,backslash 的渊源也和 Unix 差不多久,为什么 backslash 就是邪路了?因为你要是横就横到底,干脆连 Unix 的根基 C 语言也不要采用,否则你每次写 backslash 都要写成「\\」。 在windows读取文件可以用\,但在字符串里面\被作为转义字符使用,那么在描述路径时有两种方式

'c:\\a.txt',转义的方式
r'c:\a.txt',声明字符串不需要转义

这样就实现了用\来访问路径。


而Linux下路径是用/来分割,同样描述路径有两种方式,总是不舒服。


python提供了兼容处理,让Linux风格路径在windows下可用,于是很多时候大家都会选Linux风格。这样简单的脚本可以在两个平台下都能运行。

python对windows路径处理有一个库叫ntpath。

windows用\分割路径是因为当年DOS时代将/作为参数引导使用了,懒惰的某人不愿花时间处理相关解析,于是为了赶工粗暴的使用了\替代。

windows二者皆可,字符串前加r防止转意。比如r'c:/***/**'
linux只用'/'
如果你不确定,可以不用关心这种细节,用os.path.sep来组合路径,标准库os中提供各种分隔符(sep,linesep)等等用于跨平台。具体请看文档

多说几句,
这类io问题标准库的使用方法python入门的书中都有,而且最好的办法不是自己动手写几行代码试试么?

其实windows是正反都可以的,只是python挑了其中的一个 因为开源语言最初的目标操作系统一般是 Linux/Unix , Unix 用 / 做路径分隔 话说,Windows 主要用的不就是“反斜杠(Backslash)”吗? 因为正斜杠“/”被Win/dos用来做命令行参数分隔符了(比如“/?”)所以目录分隔符就只能采用反正常人习惯的反斜杠“\”了。要不然,程序对于命令行里“/abc”该解析为参数还是根目录下文件/目录无所适从。Unix在这里的选择好一些,用横线“-”前缀来表示命令行参数,比如“-h”,然后就理所当然的用符合正常人习惯的正斜杠“/”来分割目录了。 DOS里边的命令“dir /a” "format c: /q",DOS命令的参数是用的正斜杠"/",所以就没办法咯,win3.1和win95都是要先装DOS6.22才能用的啊,所以DOS里是用正斜杠"/",不是windows。 还要操心正反斜杠,移植性咋办?看起来python提供的跨平台feature算是白做了。 见过字符串里写八个反斜杠的╮(╯▽╰)╭

用斜杠多好啊\(^o^)/~
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Python:探索其主要應用程序 Python:探索其主要應用程序 Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

2小時的Python計劃:一種現實的方法 2小時的Python計劃:一種現實的方法 Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

redis怎麼啟動服務器 redis怎麼啟動服務器 Apr 10, 2025 pm 08:12 PM

啟動 Redis 服務器的步驟包括:根據操作系統安裝 Redis。通過 redis-server(Linux/macOS)或 redis-server.exe(Windows)啟動 Redis 服務。使用 redis-cli ping(Linux/macOS)或 redis-cli.exe ping(Windows)命令檢查服務狀態。使用 Redis 客戶端,如 redis-cli、Python 或 Node.js,訪問服務器。

redis怎麼讀取隊列 redis怎麼讀取隊列 Apr 10, 2025 pm 10:12 PM

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

Redis如何查看服務器版本 Redis如何查看服務器版本 Apr 10, 2025 pm 01:27 PM

問題:如何查看 Redis 服務器版本?使用命令行工具 redis-cli --version 查看已連接服務器的版本。使用 INFO server 命令查看服務器內部版本,需解析返回信息。在集群環境下,檢查每個節點的版本一致性,可使用腳本自動化檢查。使用腳本自動化查看版本,例如用 Python 腳本連接並打印版本信息。

redis怎麼讀出數據 redis怎麼讀出數據 Apr 10, 2025 pm 07:30 PM

要從 Redis 中讀取數據,可按以下步驟執行:1. 連接到 Redis 服務器;2. 使用 get(key) 獲取鍵的值;3. 若需字符串值,解碼二進制值;4. 使用 exists(key) 檢查鍵是否存在;5. 使用 mget(keys) 獲取多個值;6. 使用 type(key) 獲取數據類型;7. Redis 還有其他讀取命令,例如:獲取匹配模式的所有鍵、使用游標迭代鍵和對鍵的值進行排序。

Redis持久化對內存的影響是什麼? Redis持久化對內存的影響是什麼? Apr 10, 2025 pm 02:15 PM

Redis持久化會額外佔用內存,RDB在生成快照時臨時增加內存佔用,AOF在追加日誌時持續佔用內存。影響因素包括數據量、持久化策略和Redis配置。要減輕影響,可合理配置RDB快照策略、優化AOF配置、升級硬件和監控內存使用情況。此外,在性能和數據安全之間尋求平衡至關重要。

如何根據業務需求設置Redis內存大小? 如何根據業務需求設置Redis內存大小? Apr 10, 2025 pm 02:18 PM

Redis 內存大小設置需要考慮以下因素:數據量及增長趨勢:估算存儲數據的大小和增長率。數據類型:不同類型(如列表、哈希)佔用內存不同。緩存策略:全緩存、部分緩存和淘汰策略會影響內存使用。業務峰值:預留足夠內存應對流量高峰。

See all articles