Python自学之路--005:os与sys库使用过程函数总结

目录

1、sys.stdout.flush

2、.upper()

3、bytes.fromhex

4、os.listdir

5、os.path.join

6、os.path.isdir()

7、os.path.exists

8、os.path.isfile

9、os.system


1、sys.stdout.flush

        在Python中,sys.stdout.flush()的作用是强制刷新标准输出的缓冲区。这意味着它会立即将缓冲区内的所有数据写入终端,即使通常情况下它会等待直到缓冲区满了才这么做。这在你想要立即看到输出结果,而不是等到程序结束或缓冲区满了才显示时非常有用。

        例如,如果你有一个循环,每次迭代都打印一些内容,但没有换行符(默认情况下会触发刷新),那么使用sys.stdout.flush()可以确保每次迭代的输出都会立即显示出来。

import sys
import time

for i in range(10):
    print(i, end=' ')
    sys.stdout.flush()
    time.sleep(1)

        在这个例子中,数字从0到9将会每秒打印一次,并且每次都在同一行上,由空格分隔。这是因为调用了sys.stdout.flush(),它强制刷新了缓冲区,使得输出可以立即显示。

2、.upper()

        在Python中,.upper() 是字符串(String)类的一个方法,它用于将字符串中的所有小写字母转换为大写字母,并返回新的字符串。这个方法不会改变原始字符串,而是返回一个新的字符串,其中所有的字符都被转换成了大写形式。符号和数字会被忽略

text = "hello world"
upper_text = text.upper()
print(upper_text)

输出

HELLO WORLD

这里,upper_text 是原始字符串 text 转换为大写后的结果。

3、bytes.fromhex

        在Python中,bytes.fromhex 是一个类方法,它用于将一个包含十六进制数字的字符串转换成 bytes 对象。每一对十六进制数字代表一个字节。这个方法非常有用,特别是在处理二进制数据或者需要将十六进制字符串转换为二进制表示时

        例如,如果你有一个十六进制的字符串,想要将其转换为 bytes 对象,可以这样做:

# 十六进制字符串
hex_string = "48656c6c6f"
# 使用 bytes.fromhex 方法将十六进制字符串转换为 bytes 对象
bytes_object = bytes.fromhex(hex_string)
print(bytes_object)
这段代码会输出:
b'Hello'

        这里,hex_string 是原始的十六进制字符串,而 bytes_object 是转换后的 bytes 对象,其中包含了相应的二进制数据。

4、os.listdir

        在Python中,os.listdir() 是一个用于获取指定目录中所有文件和目录名称的列表的方法。如果没有指定路径,它将返回当前工作目录中的文件和目录列表。这个列表是以任意顺序排列的,不包括特殊条目 ‘.’ 和 ‘…’,即使它们存在于目录中也是如此。

        这是os.listdir()的基本用法示例:

import os
# 获取当前工作目录的路径
path = os.getcwd()
# 获取路径中所有文件和目录的列表
dir_list = os.listdir(path)
print("当前目录中的文件和目录:")
for item in dir_list:
    print(item)

        在这个例子中,os.getcwd() 获取当前工作目录的路径,然后 os.listdir(path) 返回该路径中所有文件和目录的列表。最后,循环遍历这个列表并打印出每个条目的名称。

5、os.path.join

        在Python中,os.path.join() 函数用于将一个或多个路径片段智能地连接起来。这个函数返回的值是将路径和所有的 *paths 成员连接起来的结果,每个非空部分后面都跟着一个目录分隔符,除了最后一个部分。也就是说,如果最后一个部分是空的或者以分隔符结尾,那么结果也会以分隔符结尾。

        这个函数对于跨平台的路径操作非常有用,因为它会根据操作系统的类型自动处理路径分隔符。例如,在Windows系统中,它会使用反斜杠 \,而在UNIX和类UNIX系统中,它会使用正斜杠 /。

        下面是一个使用 os.path.join() 的例子:

import os
# 定义路径片段
path1 = "/home/user"
path2 = "documents"
filename = "example.txt"
# 使用 os.path.join() 连接路径片段
full_path = os.path.join(path1, path2, filename)
print(full_path)

        在这个例子中,os.path.join() 将 path1, path2, 和 filename 连接成一个完整的路径。如果你在Windows系统上运行这段代码,输出可能会是:

        /home/user/documents/example.txt

        请注意,即使在Windows系统上,Python也会正确地处理正斜杠作为路径分隔符。这是因为Python的标准库旨在提供跨平台的兼容性。

6、os.path.isdir()

        在Python中,os.path.isdir() 函数用于检查指定的路径是否为目录。如果路径是一个存在的目录,它将返回 True,否则返回 False。这个方法也会跟随符号链接,这意味着如果指定的路径是指向现有目录的符号链接,那么该方法也会返回 True。

        这里是 os.path.isdir() 的一个使用示例:

import os
# 指定路径
path = '/path/to/directory'
# 检查路径是否为目录
if os.path.isdir(path):
    print(f"'{path}' 是一个目录")
else:
    print(f"'{path}' 不是一个目录")

        在这个例子中,如果 path 是一个存在的目录,那么程序将打印出 '/path/to/directory' 是一个目录。如果不是,它将打印出 '/path/to/directory' 不是一个目录。这个函数在处理文件和目录时非常有用,因为它可以帮助你避免在不存在的目录上执行操作,从而避免错误。

7、os.path.exists

        在Python中,os.path.exists函数用于检查指定的路径是否存在。如果路径存在,它返回True;如果不存在,它返回False。这个函数对于判断文件或目录是否存在非常有用。以下是一个简单的使用示例:

import os

# 检查文件是否存在
file_path = 'example.txt'
print(os.path.exists(file_path))  # 如果文件存在则返回True,否则返回False

# 检查目录是否存在
directory_path = '/path/to/directory'
print(os.path.exists(directory_path))  # 如果目录存在则返回True,否则返回False

        根据Python 3.12.3的文档,os.path.exists还会返回False,如果你没有权限执行os.stat()在请求的文件上,即使路径物理上存在。

8、os.path.isfile

        在Python中,os.path.isfile 函数用于检查指定的路径是否为一个存在的常规文件。如果路径是一个文件,它会返回 True;否则,它返回 False。这个函数会跟随符号链接,所以对于同一个路径,os.path.islink() 和 os.path.isfile() 都可能为真。

        下面是如何使用 os.path.isfile 的一个简单例子:

import os
# 检查指定路径的文件是否存在
file_path = 'example.txt'
is_file = os.path.isfile(file_path)
print(f"路径 {file_path} 是一个文件: {is_file}")
如果 example.txt 存在,并且是一个文件,输出将会是 True。

9、os.system

        os.system 是 Python 中的一个函数,它允许你从 Python 脚本内部执行 shell 命令。它在底层操作系统的 shell 中运行指定的命令,并返回命令的退出代码。这个方法通过调用标准 C 函数 system() 来实现,并且具有相同的限制。如果命令生成任何输出,它会被发送到解释器的标准输出流。

例如,你可以使用 os.system 来执行一些简单的操作系统命令,如打开记事本或获取当前日期:

import os
# 打开记事本
os.system('notepad')
# 获取当前日期
os.system('date')

        当你使用 os.system 时,操作系统的相应 shell 会被打开,并在其中执行命令。这个方法在 Unix 系统中返回进程的退出状态,在 Windows 系统中返回由系统 shell 在运行命令后返回的值

        请注意,虽然 os.system 可以方便地执行命令,但它并不总是最安全或最有效的方法。例如,它不允许直接处理命令的输出,也不提供异常处理。在需要更复杂的交互或更好的错误处理时,建议使用 subprocess 模块

  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剑从东方起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值