现在我正在创建一个文本文件,然后使用命令(在python 3中)将som文本写入其中:
userFile = open("users\\"+userName+".txt","w")
这会在名为users的文件夹中创建文件,但是当我在linux系统上运行程序时,它会在根文件夹中创建一个名为users \ userName.txt的文件。
linux中的python 3的路径定义有何不同?
它在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
Windows有驱动器(C:,D:,X:等)和反斜杠或双反斜杠,例如
C:\Users\JohnSmith
与C:\\Users\\JohnSmith
相同
在Linux上,没有驱动器(本身)和正斜杠,例如/home/name
了解路径的最佳方法是使用os。尝试在你的python终端print(os.path.abspath('.'))
中键入它