亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Win服務器 > 正文

使用Python解決Windows文件名非用反斜杠問題(python 小技巧)

2024-09-10 00:02:04
字體:
來源:轉載
供稿:網友

 

在編程過程中,我們往往會遇到一個小麻煩――微軟 Windows 系統在文件夾名之間使用反斜杠字符,而幾乎所有其它的計算機(操作系統)都使用正斜杠:

Windows filenames: C:/some_folder/some_file.txt Most other operating systems: /some_folder/some_file.txt 

這是由于上世紀 80 年代早期計算機歷史上的一個小意外。「MS-DOS」的第一版使用了正斜杠字符來指定命令行選項。當微軟在「MS-DOS 2.0」中加入了對文件夾的支持時,正斜杠字符已經被使用了,所以他們采用了反斜杠作為替代。35 年后,我們仍然被受困于這種不一致性。

如果你想讓你的 Python 代碼同時在 Windows 和 Mac/Linux 上工作,你就需要處理這種與平臺相關的問題。幸運的是,Python 3 有一個名為「pathlib」的新模塊,使得用戶處理文件幾乎沒有任何困難。

「pathlib」模塊鏈接: https://docs.python.org/3/library/pathlib.html

讓我們快速瀏覽一下處理文件名路徑的不同方法,看看「pathlib」如何能讓你的生活變得更美好!

錯誤的解決方案:手動構建文件路徑

假設你有一個數據文件夾,該文件夾包含你想要在你的 Python 程序中打開的文件:

 

在 Python 中對其進行編碼是「錯誤」的方式:

data_folder = "source_data/text_files/" file_to_open = data_folder + "raw_data.txt" f = open(file_to_open) print(f.read()) 

請注意,由于我使用的是 Mac 系統,所以我使用了「Unix」風格的正斜杠對路徑進行了硬編碼。這也會讓 Windows 的用戶感到憤怒。

從技術上講,這段代碼在 Windows 上仍然有效,因為 Python 有一個「黑客」(hack)技術:當你在 Windows 上調用「open()」函數時,它會識別這兩種斜線。但即便如此,你也不應該依賴它。如果你在錯誤的操作系統上使用了錯誤類型的斜杠(尤其是在它們與外部程序或代碼庫交互時),并不是所有的 Python 庫都會正常工作。

Python 對混合斜杠類型的支持是一種只針對 Windows 的「黑客」技術,它反過來并不起作用。在 Mac 系統環境下,在代碼中使用反斜杠會導致徹底失敗:

data_folder = "source_data//text_files//" file_to_open = data_folder + "raw_data.txt" f = open(file_to_open) print(f.read()) # On a Mac, this code will throw an exception: # FileNotFoundError: [Errno 2] No such file or directory: 'source_data//text_files//raw_data.txt' 

由于所有這些原因以及其他原因,使用硬編碼的路徑字符串編寫代碼,是一種會讓其他程序員十分「嫌棄」的做法。一般來說,你應該盡量避免這么做。

以前的解決方案:Python 的「os.path」模塊

Python 的「os.path」模塊有很多工具來處理這類針對特定操作系統的文件系統問題。

你可以使用「os.path.join()」為當前的操作系統構建一個使用正確類型斜杠的路徑字符串:

import os.path data_folder = os.path.join("source_data", "text_files") file_to_open = os.path.join(data_folder, "raw_data.txt") f = open(file_to_open) print(f.read()) 

這段代碼可以同時在「Windows」或「Mac」系統上完美運行。問題是它使用起來很麻煩。寫出「os.path.join()」并將路徑的每個部分作為獨立的字符串傳給該函數非常冗長,而且很不直觀。

由于「os.path」模塊中的大多數函數使用起來很煩人,開發者們通常會「忘記」使用它們,即使他們知道這樣做更好。這導致出現了很多跨平臺的 Bug,也引起了用戶的憤怒。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
米奇精品一区二区三区在线观看| 亚洲第一精品自拍| 97视频网站入口| 欧美精品久久久久久久| 亚洲第一页在线| 欧美激情精品久久久久久久变态| 久久亚洲精品中文字幕冲田杏梨| 成人福利在线观看| 欧美一区三区三区高中清蜜桃| 日韩精品中文字幕视频在线| 国产精品视频公开费视频| 久久久久久国产精品久久| 欧美精品www| 国产精品久久二区| 最近2019年好看中文字幕视频| 人妖精品videosex性欧美| 亚洲视频在线观看网站| 北条麻妃99精品青青久久| 国产91网红主播在线观看| 亚洲一区亚洲二区亚洲三区| 国产成人精品一区二区| 国产精品视频资源| 亚洲天堂av在线免费观看| 日韩av在线一区二区| 国产精品日韩欧美| 亚洲国产一区二区三区四区| 欧美激情一级精品国产| 成人免费视频a| 日韩乱码在线视频| 亚洲欧美国产精品专区久久| 欧美精品情趣视频| 一区二区国产精品视频| 精品人伦一区二区三区蜜桃网站| 日本韩国在线不卡| 日韩欧美一区二区三区| 亚洲性生活视频在线观看| 久久精品成人欧美大片古装| 疯狂做受xxxx高潮欧美日本| 国产精品免费小视频| 中文字幕亚洲图片| 国产精品91在线观看| 福利视频第一区| 中文字幕精品网| 午夜美女久久久久爽久久| 欧美性xxxxx| 欧美激情在线一区| 日韩精品在线观看一区二区| 欧美性xxxx极品hd欧美风情| 精品久久久久久亚洲精品| 国产成人一区二| 九九热精品在线| 日韩极品精品视频免费观看| 国产自摸综合网| 国产精品自产拍高潮在线观看| 国产香蕉97碰碰久久人人| 日韩欧美中文字幕在线观看| 亚洲美女黄色片| 国产成+人+综合+亚洲欧美丁香花| 国产精品激情av在线播放| 91视频-88av| 91九色视频在线| 午夜精品福利电影| 日韩久久精品成人| 国产婷婷色综合av蜜臀av| 午夜精品久久久久久久男人的天堂| 久久人人爽国产| 国产一区二区三区中文| 色妞欧美日韩在线| 欧美日韩aaaa| 最新国产成人av网站网址麻豆| 美日韩精品视频免费看| 69av在线视频| 亚洲人精品午夜在线观看| 久久综合久中文字幕青草| 国产视频丨精品|在线观看| 国产美女被下药99| 亚洲欧洲黄色网| 欧美黑人性视频| 国产成人精品久久久| 日本aⅴ大伊香蕉精品视频| 国产精品一区二区三区久久久| 欧美在线中文字幕| 日韩av中文字幕在线播放| 久久久亚洲成人| 日韩精品一区二区视频| 欧美国产精品va在线观看| 久久亚洲国产精品成人av秋霞| 45www国产精品网站| 国产精品福利在线观看| 这里只有视频精品| 日韩在线激情视频| 精品国产福利在线| 最近2019中文字幕在线高清| 久久久亚洲欧洲日产国码aⅴ| 91禁国产网站| 97视频在线观看免费高清完整版在线观看| 亚洲а∨天堂久久精品9966| 美女av一区二区三区| 色综合久久久久久中文网| 精品国产鲁一鲁一区二区张丽| 97香蕉久久夜色精品国产| 亚洲人成网站色ww在线| 国产精品久久久久秋霞鲁丝| 亚洲人成在线播放| 久久国产精品久久久久| 亚洲尤物视频网| 亚洲精品丝袜日韩| 亚洲偷熟乱区亚洲香蕉av| 久久精品国产清自在天天线| 一本大道香蕉久在线播放29| 中文字幕9999| xxx欧美精品| 欧美精品videofree1080p| 黄网站色欧美视频| 伊人久久久久久久久久| 亚洲情综合五月天| 欧美日韩亚洲天堂| yw.139尤物在线精品视频| 色婷婷亚洲mv天堂mv在影片| 狠狠躁夜夜躁人人爽超碰91| 欧美精品videofree1080p| 91超碰中文字幕久久精品| 欲色天天网综合久久| 日韩在线中文视频| 国产精品av免费在线观看| 欧美日韩在线另类| 欧美黑人极品猛少妇色xxxxx| 亚洲一区二区三区四区在线播放| 国产福利精品视频| 国产精品久久久久久久app| 欧美午夜宅男影院在线观看| 亚洲iv一区二区三区| 色偷偷av亚洲男人的天堂| 国产丝袜精品第一页| 日韩欧美国产网站| 亚洲一区免费网站| 欧美激情精品久久久久久| 亚洲欧美制服第一页| 久久国产视频网站| 欧美午夜影院在线视频| 国产精品美女在线观看| 亚洲欧美日韩视频一区| 国产aaa精品| 成人黄色在线播放| 欧美亚洲成人免费| 国产福利视频一区二区| 中文字幕av一区中文字幕天堂| 欧美精品免费看| 久久精品青青大伊人av| 26uuu亚洲伊人春色| 国产美女精彩久久| 久久夜色精品国产欧美乱| 国产精品一区专区欧美日韩| 亚洲国产成人精品久久久国产成人一区| 在线观看日韩www视频免费| 久久九九全国免费精品观看| 国产aⅴ夜夜欢一区二区三区| 国产精品成人一区| 日本乱人伦a精品| 亚洲国产精品悠悠久久琪琪| 成年无码av片在线| 国产精品午夜国产小视频| 精品夜色国产国偷在线| 日韩av中文字幕在线|