import os
import sys
SYS_PATH = sys.argv[0]
print(SYS_PATH)
D:/pycharm文件/打包/test.py
OS_PATH = os.path.abspath(file)
print(OS_PATH)
D:\pycharm文件\打包\test.py
他俩有什么区别 ? 也可以回答 os与sys有什么区别 一个是正一个是反
os与sys 什么样的场景 需要区分他俩
本人使用win 和 python pycharm
题主稍微搞混了
python D:/pycharm文件/打包/test.py
所以输出是“D:/pycharm文件/打包/test.py”D:\pycharm文件\打包\test.py
USER_PATH='D:\\pycharm文件\\打包\\test.py'
USER_PATH=r'D:\pycharm文件\打包\test.py' # 推荐使用这种写法,传参的时候也是用windows的路径格式,保持一致
USER_PATH='D:/pycharm文件/打包/test.py'
windows是\,因为OS正好是封装的操作系统底层的接口,所以本质上它是你的操作系统执行的命令,所以它的输出结果路劲和你当前系统的是一样的。
linux是/,当然,你在编程语言中不管什么系统用/做路径分隔符是不影响,也是建议用这种,因为WINDOWS写路劲时你还要加个反斜杠转义即\\。而sys用于操控py的运行时环境,所以它输出的反斜杠就是正常的linux中的标准。
区别:
os:提供一种方便的使用操作系统函数的方法
sys:提供访问由解释器使用或维护的变量和在与解释器交互使用到的函数。
因此, sys 模块区别于 os 模块,sys 模块提供了一系列的函数和变量,用于操控python 的运行时环境, 而 os 提供了访问操作系统底层的接口。
有帮助的话采纳一下哦!
规定不同而已,win用的路径是""
\和/是路径分隔符,windows用\, Linux用/。
os.path.abspath
。sys.argv[0]
1、os提供的是interpreter作为转发连接用户代码与os, 而sys则是提供interpreter和用户之间的交互接口
2、os就是一个普通的python库,用来向Python程序提供运行环境,特别是在文件系统、创建新进程、获取操作系统本身的一些信息(比如uname),并屏蔽各种不同操作系统之间的细节差异。
sys模块则是python程序用来请求解释器行为的接口。比如关于调试类的(trace, frames,except)等,profiling类(stats, getsizeof),运行时环境类(python path, stderr, stdout),解释器本身(如version)。
两者斜杠的区别,详见如下:
网址路径:
文件路径:
linux OS:使用”/“ 例子:/home/user/XXX
特例:路径中某目录名包含空格,在命令行中使用cd等命令书写路径时,则要在空格前加”\“
例子:
主目录(/home/student)下有一个文件夹叫"student 01"
cd 命令可以用\转义空格
$ cd /home/student/student\ 01
windows OS: 使用”\“ 例子:C:\Program Files
共享路径:
在windows OS上访问其他windows或者linux终端:使用”\“ 例子: \电脑名\文件名
在linux OS上访问其他windows或者linux终端:使用”/“ 例子://电脑名/文件名
总结:windows OS中,用”\“隔开;linux OS中,用”/“隔开;网址中,用”/“隔开
/是 Unix 和类似Unix 系统上的路径分隔符。现代 Windows
通常可以同时使用这两种文件路径\并且/可以互换使用,但微软几十年来一直提倡使用\作为路径分隔符。
这样做的历史原因可以追溯到 1970 年代,比 Windows 早了十多年。一开始,
MS-DOS(早期 Windows 的基础)不支持目录。
Unix /从一开始就支持使用该字符的目录。然而,
当在 MS-DOS 2.0 中添加目录时,Microsoft 和 IBM 已经使用该/字符来表示命令开关,
并且由于 DOS 的轻量级解析器(源自QDOS,旨在在低端硬件上运行),
他们找不到在/不破坏与现有应用程序兼容性的情况下使用字符的可行方法。
因此,为了避免在将文件路径作为参数传递给以下命令时出现“缺少开关”或“无效开关”的错误:
cd/ <---- no switch specified
dir folder1/folder2 <---- /folder2 is not a switch for dir
决定改用该字符\,因此您可以像这样编写这些命令
cd\
dir folder1\folder2
后来,微软和 IBM 合作开发了一个与 DOS 无关的操作系统,
称为OS/2。OS/2 能够同时使用这两种分隔符,这可能会吸引更多的 Unix 开发人员。
当Microsoft 和 IBM 在 1990 年分道扬镳时,
Microsoft 采用了他们拥有的代码并创建了Windows NT,
所有现代版本的 Windows 都基于它,并带有这种分隔符。
由于向后兼容性一直是微软从他们进行的所有主要操作系统转换
(DOS 到 Win16/DOS,到 Win16/Win32,再到 Win32/WinNT)的游戏名称,
这种特性一直存在,它可能会存在一段时间了。
正是由于这个原因,存在这种差异。它应该对你正在做的事情没有任何影响,
因为就像我说的那样,WinAPI 通常可以互换使用它们。但是,
如果在第三方应用程序当他们期望目录名称之间有一个 \ 时你传递了/ 可能就会中断,
如果您使用的是 Windows,请坚持使用\。
如果您使用的是 Unix 或URI(它们的基础是 Unix 路径,这完全是另一回事),请使用/