如何在Linux Python环境中获取或更改当前工作目录

时间:2024-08-24 15:04:40
编辑:

本文介绍在Python环境中获取或更改当前工作目录的方法,以Linux平台为例

在Linux Python环境中获取或更改当前工作目录的方法

在Python上处理目录中的文件时,建议使用绝对路径。但是,如果您使用的是相对路径,则需要了解当前工作目录的概念以及如何查找或更改当前工作目录。绝对路径指定从根目录开始的文件或目录位置,而相对路径从当前工作目录开始。

运行Python脚本时,当前工作目录将设置为执行脚本的目录。

os python模块提供了一种与操作系统交互的可移植方式,该模块是标准Python库的一部分,并包含用于查找和更改当前工作目录的方法。

在Python中获取当前的工作目录

Python中os模块的getcwd()方法返回一个字符串,其中包含当前工作目录的绝对路径,返回的字符串不包含斜杠字符:

os.getcwd()

要使用os模块方法,必须在文件顶部导入模块。

下面是显示如何打印当前工作目录的示例:

# Import the os module import os # Get the current working directory cwd = os.getcwd() # Print the current working directory print("Current working directory: {0}".format(cwd)) # Print the type of the returned object print("os.getcwd() returns an object of type: {0}".format(type(cwd)))

输出将如下所示:

Current working directory: /home/ywnz/Desktop

os.getcwd() returns an object of type:

如果要查找脚本所在的目录,请使用

os.path.realpath(__file__)

它将返回一个字符串,其中包含正在运行的脚本的绝对路径。

在Python中更改当前工作目录

要在Python中更改当前工作目录,请使用chdir()方法:

os.chdir(path)

该方法接受一个参数,即您要更改到的目录的路径,path参数可以是绝对值或相对值。

这是一个例子:

# Import the os module import os # Print the current working directory print("Current working directory: {0}".format(os.getcwd())) # Change the current working directory os.chdir('/tmp') # Print the current working directory print("Current working directory: {0}".format(os.getcwd()))

输出将如下所示:

Current working directory: /home/ywnz/Desktop

Current working directory: /tmp

提供给chdir()方法的参数必须是目录,否则会引发NotADirectoryError异常。如果指定的目录不存在,则会引发FileNotFoundError异常。如果运行脚本的用户没有必要的权限,则会引发PermissionError异常:

# Import the os module import os path = '/var/www' try: os.chdir(path) print("Current working directory: {0}".format(os.getcwd())) except FileNotFoundError: print("Directory: {0} does not exist".format(path)) except NotADirectoryError: print("{0} is not a directory".format(path)) except PermissionError: print("You do not have permissions to change to {0}".format(path))

结论:要在Python中找到当前的工作目录,请使用os.getcwd(),要更改当前的工作目录,请使用os.chdir(path)。

解决deepin系统任务栏消失的问题

当我们的电脑系统更新时,一些小白电脑迫不及待地安装使用新系统,却不知道新的电脑系统存在很多bug。比如新系统deepin系统,很多朋友在下载使用过程中发现任务栏不见了!那么我们如何找到任务栏呢?

解决办法:

方法一:

1、关闭云同步中的任务栏同步。

2、删除 rm ~/.config/dconf 或 rm ~/.config/dconf -rf 文件夹。

3、重启即可解决。

方法二:

1、按下“ctrl+alt+t”进入终端。

2、随后输入命令:sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get install dde。

3、随后重启一下系统即可解决。

以上就是为您带来的deepin任务栏消失解决方法 ,输入代码的时候直接复制就好了~

UOS系统发布补丁提升root管理员权限

统信uos系统是基于Linux系统开发一款我国自主研发的系统,有非常多的企业用户在使用的时候不知道如何去在这款操作系统去获取root权限,该系统有些功能默认的禁用的,例如root权限,下面一起学学如何去启用UOS的root权限吧!
UOS系统如何获取root管理员权限

详细步骤:

1、登录 UOS 账号,(如没有账号需先到官网申请)

2、使用离线的方式启用开发者模式,开启离线模式请参考下面的步骤;

UOS系统如何获取root管理员权限

3、开发者模式开启后,即可获得Root用户权限了。

打开终端,输入:

su

输入开机密码即可进入Root权限。

UOS系统如何获取root管理员权限

全新发布:EndeavourOS Cassini Nova系统亮相,内置Linux 6.2内核!

近日消息,EndeavourOS 开发人员 Bryan Poerwo 今天宣布 EndeavourOS Cassini Nova 正式可用,这是基于 Arch Linux 的流行滚动发行版的新 ISO 版本,带来了更新的组件和错误 Bug 修复。

EndeavourOS Cassini Nova系统发布:搭载Linux内核 6.2

EndeavourOS Cassini Nova 在 EndeavourOS Cassini Neo 发布后不到一个月出现,它将内核包升级到最新 Linux 6.2 系列。(IT之家注:ISO 镜像附带 Linux 内核 6.2.2)

EndeavourOS Cassini Nova 版本中的其他更新组件包括 Mesa 22.3.6 图形堆栈、Xorg Server 21.1.7 显示服务器、NVIDIA 525.89.02 图形驱动程序、Calamares 3.3.0 Alpha 3 图形安装程序以及 Mozilla Firefox 110.0.1 网页浏览器。

此版本还修复了自 EndeavourOS Cassini Neo 发布以来用户报告的一些问题,例如在安装 NVIDIA Prime 时添加 nvidia_drm.modeset=1 内核参数,以及离线安装时不再安装仅需要包的问题。

此外,此版本不再默认包含 Intel 传统 CPU 的 xf86-video-intel 包,并清理了安装程序配置文件和 Calamares 网络安装列表,以防止用户在未选择时意外安装受损的视觉工具。

“这些修复是针对 ISO 及其安装过程的,运行系统的用户不必搜索“Nova 更新”,他们只需执行常规更新,因为 EndeavourOS 是滚动版本,”EndeavourOS 开发人员 Bryan Poerwo 说道。

如果用户希望在新计算机上部署 EndeavourOS 或出于某种原因重新安装,建议从官方网站下载 EndeavourOS Cassini Nova。

Linux系统安全管理指南:提供最新的安全管理技巧与策略

Linux是一个免费传播的操作系统,Linux系统进程可以操作任何文件、数据库等。在特定条件下。如果这个过程被不法分子用于其他非法目的,会给系统带来很大的危害。占服务器市场份额绝大部分的Linux系统,在这个前提下必须保证计算机系统的安全性,所以我们不得不对其进程进行安全管理。如何设置Linux系统安全管理?

下面就是设置系统安全管理的步骤:

1.引导程序安全

Linux系统的root密码是很容易破解的,当然前提是你没有设置引导程序密码,如GRUB或LILO,为了防止通过引导程序破译root密码,强烈建议设置GRUB或LILO的引导密码,可以编辑其配置文件/etc/grub.conf或/etc/lilo.conf,设置password参数。

2.不安全权限设置

大家常见的Linux下文件权限是r w x,其实还有一种权限叫s,如果给某个文件赋予的s权限,那么这个文件在执行的时候就会拥有相应宿主用户或宿主组用户的权限,例如:

#chmod u+s testfile

#ls -la testfile

rwsr----- root root 10 testfile

这样,当这个文件被其它用户执行的时候,此用户就具有了此文件宿主用户root的对testfile的执行权限。类似,当文件的宿主组具有s权限后,执行此文件的用户就具有了此文件宿主组用户对此文件的权限,这是相当危险的。

大家可以试想下,如果命令chmod的文件被赋予了s权限,那么其它用户还有什么事情是不能做的呢?那它就可以更改任何文件的权限了,当然,s权限需要和x权限结合使用,没有x权限的s权限是没有任何意义的。

3.自动注销

当某个用户使用服务器后忘记注销,也是很危险的事情,此时,管理员可以设置/etc/profile文件的timeout参数,当用户一段时间不做任何操作时,系统自动注销此用户。

4. 设置口令复杂度

为了防止系统用户口令过于简单而被破译,可以编辑/etc/login.defs文件,设置系统用户口令复杂度,例如口令最长,最短,过期时间等。

5.禁止不必要用户登陆系统

为了防止其它非系统用户登陆系统,可以在添加用户时,赋予此用户不存在的主目录和不存在的shell环境,当然,最好还更改/etc/passwd和/etc/shadow两个文件的访问权限,使之后root用户可以访问。

相关攻略
相关推荐