【问题标题】:What is the filepath difference between window and linux in python3?python3中window和linux的文件路径有什么区别?
【发布时间】:2018-07-28 11:07:04
【问题描述】:

现在我正在创建一个文本文件,然后使用命令(在 python 3 中)向其中写入 som 文本:

userFile = open("users\\"+userName+".txt","w") 

这会在名为 users 的文件夹中创建文件,但是当我在 linux 系统上运行程序时,它会在根文件夹中创建一个名为 users\userName.txt 的文件

linux中python 3的路径定义有何不同?

【问题讨论】:

标签: linux windows python-3.x


【解决方案1】:

Windows 有驱动器(C:、D:、X: 等)和反斜杠或双反斜杠,例如

C:\Users\JohnSmithC:\\Users\\JohnSmith 相同

在 Linux 上,没有驱动器(本身)和正斜杠,例如 /home/name

了解路径的最佳方式是使用os。尝试在你的 python 终端中输入这个print(os.path.abspath('.'))

【讨论】:

    【解决方案2】:

    python 3 in linux 没有什么不同,linux 也有不同。一般来说*nix文件路径使用/作为目录分隔符,而windows使用\(无论什么原因)。

    在 python 3 中,您可以使用 pathlib.Path 从操作系统中抽象出您的代码。所以你可以做类似的事情

    open(Path(f"~/{username}.txt"), "w")
    

    波浪号~ 指的是用户的主目录。 Python 将找出代码在哪个文件系统上运行,并做正确的事情来映射目录分隔符。你也可以这样做

    open(Path(f"/users/{username}.txt"), "w")
    

    为了解决特定的用户目录,/ 指的是文件系统的根目录,应该可以在 Linux 和 Windows 上运行(虽然我还没有测试过)。

    https://docs.python.org/3/library/pathlib.html?highlight=pathlib%20path#module-pathlib

    【讨论】:

    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多