当前位置: 首页 > news >正文

python@调用系统命令行@os.system@subprocess@标准输入输出@sys.stdin@sys.stdout@input@print

文章目录

  • python@调用系统命令行@os.system@标准输入输出@sys.stdin@sys.stdout@input@print
    • 概要
      • os.system
        • demos
        • windows命令解释器@ComSpec
      • subprocess@recommended🎈
        • 基本用法
        • demos
    • 标准输入输出
      • sys.stdin
      • input()
      • sys.stdin.input@input()
        • 交互模式
        • 小结
      • sys.stdout
      • sys.stdout.wirte()@print()
      • 从文件读取@fileinput
        • fileinput.input()@从文件输入内容
        • 命令行参数提供文件名
    • 小结

python@调用系统命令行@os.system@标准输入输出@sys.stdin@sys.stdout@input@print

概要

  • 在Python中,可以使用os.system函数来执行操作系统命令。

  • 该函数接受一个字符串参数,该字符串是要执行的命令。例如,要在Windows系统中执行dir命令,可以使用以下代码:

    • import os
      os.system('dir')
      
    • 在Linux或MacOS系统中,可以使用ls命令代替dir命令。os.system函数会在一个新的子进程中执行命令,并等待命令执行完成后返回。如果命令执行成功,os.system函数返回0,否则返回一个非零值。

  • 需要注意的是,os.system函数的安全性不太好,因为它可以执行任意的系统命令。如果要执行的命令包含用户输入的内容,需要谨慎处理,以避免命令注入等安全问题。

  • 为了提高安全性,可以使用subprocess模块来代替os.system函数,该模块提供了更多的选项来控制命令的执行环境和参数。例如,以下代码使用subprocess模块来执行ls命令,并获取命令输出:

    • import subprocessresult = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
      print(result.stdout.decode('utf-8'))
      
    • 该代码会执行ls -l命令,并将输出存储在result变量中。

    • subprocess.run函数接受一个列表参数,该列表包含要执行的命令和参数。stdout=subprocess.PIPE参数可以将命令输出重定向到一个管道中,而result.stdout.decode('utf-8')可以将管道中的输出转换为字符串并打印出来。

os.system

  • os.system()

  • Execute the command (a string) in a subshell. This is implemented by calling the Standard C function system(), and has the same limitations. Changes to sys.stdin, etc. are not reflected in the environment of the executed command. If command generates any output, it will be sent to the interpreter standard output stream. The C standard does not specify the meaning of the return value of the C function, so the return value of the Python function is system-dependent.

  • On Unix, the return value is the exit status of the process encoded in the format specified for wait().

  • On Windows, the return value is that returned by the system shell after running command. The shell is given by the Windows environment variable COMSPEC: it is usually cmd.exe, which returns the exit status of the command run; on systems using a non-native shell, consult your shell documentation.

  • The subprocess module provides more powerful f acilities for spawning new processes and retrieving their results; using that module is preferable to using this function. See the Replacing Older Functions with the subprocess Module section in the subprocess documentation for some helpful recipes.

    On Unix, waitstatus_to_exitcode() can be used to convert the result (exit status) into an exit code. On Windows, the result is directly the exit code.

    Raises an auditing event os.system with argument command.

  • os.system函数是Python标准库中的一个函数,用于在子shell中执行一个命令字符串。该函数会调用操作系统底层的system()函数来实现命令的执行,因此在不同操作系统下其行为可能有所不同。

  • 在Unix系统中,os.system函数的返回值是被执行命令的退出状态,该退出状态被编码为wait()函数指定的格式。

  • 在Windows系统中,os.system函数的返回值是由系统shell返回的,通常是cmd.exe,该值取决于执行的命令。

  • 需要注意的是,os.system函数的返回值在不同操作系统下的具体含义可能不同,因此在编写跨平台脚本时需要谨慎处理。此外,os.system函数的安全性不太好,因为它可以执行任意的系统命令。如果要执行的命令包含用户输入的内容,需要谨慎处理,以避免命令注入等安全问题。

  • 为了提高安全性和灵活性,可以使用subprocess模块来代替os.system函数。

  • subprocess模块提供了更多的选项来控制命令的执行环境和参数,并且可以方便地获取命令的输出和错误信息。例如,以下代码使用subprocess模块来执行ls命令,并获取命令输出:

    import subprocessresult = subprocess.run(['ls', '-l'], capture_output=True, text=True)
    print(result.stdout)
    

    该代码会执行ls -l命令,并将输出存储在result变量中。capture_output=True参数可以将命令输出捕获到result.stdout中,而text=True参数可以将输出以字符串的形式返回。最终输出的是ls -l命令的输出。

demos

  • 下面是一个使用os.system()函数的简单示例,该示例执行一个命令行命令,打印出当前目录下的所有文件和子目录:

    import osimport platform# 获取操作系统名称
    os_name = platform.system()
    # 执行命令ls="dir" if os_name=='Windows' else "ls"
    res= os.system(ls) # 打印执行结果的状态码
    print("os.system(ls) 执行结果状态码:", res)
    res1=os.system("rasie_")
    print(res1)#执行了不存在的命令rasie_,状态码非0
    

    在这个例子中,我们首先导入了os模块,然后调用os.system()函数,将命令行命令dir传递给它。这个命令会在命令行中列出当前目录下的所有文件和子目录。

    然后,我们使用os.system()函数来执行这个命令,并将执行结果的状态码打印出来。在Windows系统中,如果执行成功,dir命令会返回0,否则会返回其他的值。我们可以通过打印状态码来判断命令是否执行成功。

    需要注意的是,os.system()函数返回的状态码是一个整数值,而不是一个字符串。如果需要将状态码转换为字符串或其他格式,需要使用相应的转换函数或方法。

windows命令解释器@ComSpec

  • ComSpec是"Command Specification"的缩写,指的是Windows操作系统中的一个环境变量,用于指定默认的命令行解释器。
  • 在Windows系统中,当需要执行一个命令行命令时,系统会首先查找ComSpec环境变量,并使用该变量指定的命令行解释器来执行命令。
  • 默认情况下,ComSpec环境变量的值为C:\Windows\System32\cmd.exe,即Windows的标准命令提示符。但是,用户可以通过修改ComSpec环境变量的值,来使用其他的命令行解释器,例如Windows PowerShell等。
  • ComSpec环境变量在Windows系统中起着重要的作用,因为许多应用程序和脚本都需要使用命令行解释器来执行操作。通过使用ComSpec环境变量,可以确保这些应用程序和脚本在任何Windows系统中都可以正常工作,而无需考虑系统中安装的命令行解释器是哪个。

subprocess@recommended🎈

  • subprocess — Subprocess management — Python 3.11.2 documentation

  • The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older modules and functions:

    os.system
    os.spawn*
    
  • Information about how the subprocess module can be used to replace these modules and functions can be found in the following sections.

基本用法

  • subprocess是Python标准库中的一个模块,提供了更高级、更安全的执行外部命令的方法,比os.system()函数更加灵活。subprocess模块可以执行命令、获取命令的输出、控制命令的输入和输出、等待命令执行完成等操作。

    下面是subprocess模块的一些常用函数和方法:

    • subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, timeout=None, check=False, encoding=None, errors=None, env=None, cwd=None, text=None, start_new_session=False):执行一个命令,并等待命令执行完成。返回一个CompletedProcess对象,其中包含命令的执行结果。args参数可以是一个字符串,也可以是一个列表或元组,表示要执行的命令和参数。
    • subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=None, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=(), *, group=None, extra_groups=None, user=None, initgroups=True):启动一个新的进程,并返回一个Popen对象,其中包含该进程的信息和控制方法。args参数的含义与subprocess.run()函数相同。
    • subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None, encoding=None, errors=None, env=None, cwd=None, text=None, start_new_session=False):执行一个命令,并等待命令执行完成。如果命令的返回值为0,则返回None,否则会抛出CalledProcessError异常。args参数的含义与subprocess.run()函数相同。
    • subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, timeout=None, encoding=None, errors=None, universal_newlines=None, cwd=None, text=None, start_new_session=False):执行一个命令,并返回命令的输出结果。如果命令的返回值不为0,则会抛出CalledProcessError异常。args参数的含义与subprocess.run()函数相同。

demos

下面是subprocess模块的一些示例代码,演示了如何使用不同的函数和方法执行外部命令:

  • 使用subprocess.run()函数执行一个简单的命令,打印当前目录的路径:

    • import subprocessresult = subprocess.run(["pwd"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
      print(result.stdout.decode("utf-8"))
      
    • 在这个例子中,我们调用subprocess.run()函数执行pwd命令,该命令会打印当前目录的路径。stdout=subprocess.PIPE参数表示我们希望获取命令的标准输出,stderr=subprocess.PIPE参数表示我们希望获取命令的错误输出。result.stdout.decode("utf-8")语句将获取到的标准输出转换为字符串,并打印出来。

  • 使用subprocess.Popen()函数执行一个命令,并向其输入数据:

  • import subprocess# 启动一个命令行进程
    p = subprocess.Popen(["cat"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)# 向进程输入数据
    p.stdin.write(b"hello\n")
    p.stdin.write(b"world\n")
    p.stdin.close()# 从进程读取输出
    output = p.stdout.read()# 打印输出
    print(output.decode("utf-8"))
    

在这个例子中,我们使用subprocess.Popen()函数启动了一个cat命令的进程,并将其标准输入和输出重定向到stdinstdout。我们向该进程输入了两行数据,然后关闭了标准输入。最后,我们从进程的标准输出中读取数据,并将其打印出来。

  1. 使用subprocess.check_call()函数执行一个命令,检查其返回值:
import subprocess# 执行一个命令,检查其返回值
subprocess.check_call(["ls", "-l"])

标准输入输出

  • Take input from stdin in Python - GeeksforGeeks

  • stdinstdout是计算机中常见的输入输出流。在Unix和类Unix系统(如Linux)中,一切都是文件,包括标准输入、输出和错误输出。在Windows系统中,也有类似的概念,但是实现方式略有不同。

  • stdin代表标准输入流,通常用于从控制台或者其他程序读取输入。在Python中,可以使用sys.stdin对象来访问标准输入流。例如,以下代码使用sys.stdin对象来读取用户输入的字符串:

    import sysinput_str = sys.stdin.readline()
    print(input_str)
    

    该代码使用sys.stdin.readline()函数从标准输入流中读取一行字符串,并将其存储在input_str变量中。然后,将该字符串输出到标准输出流中。需要注意的是,sys.stdin对象默认使用缓冲区,因此在读取输入之前可能需要先刷新缓冲区。

  • stdout代表标准输出流,通常用于向控制台或者其他程序输出信息。在Python中,可以使用print()函数将信息输出到标准输出流中。例如,以下代码使用print()函数输出一行字符串到标准输出流中:

    print('Hello, world!')
    

    该代码会将字符串'Hello, world!'输出到标准输出流中。需要注意的是,print()函数默认会在输出字符串末尾添加一个换行符,如果不希望添加换行符,可以使用end参数来指定输出末尾的字符。

    总之,stdinstdout是计算机中常见的输入输出流,用于在程序和外界之间传递信息。在Python中,可以使用sys.stdinprint()函数来访问标准输入和输出流。

  • 标准输入流(stdin)通常用于从外部环境中读取输入。例如,在命令行程序中,用户可以通过键盘向程序输入数据,这些数据就会通过标准输入流传递到程序中。标准输出流(stdout)通常用于向外部环境输出信息。例如,在命令行程序中,程序可以通过标准输出流将结果输出到控制台中,供用户查看。

    在Python中,可以使用sys.stdinsys.stdout对象来访问标准输入输出流。sys.stdin对象表示标准输入流,可以通过该对象的readline()方法从标准输入中读取一行文本。例如,以下代码从标准输入中读取一行文本,并将其输出到标准输出中:

    import sysinput_str = sys.stdin.readline()
    sys.stdout.write(input_str)
    
  • 该代码首先使用sys.stdin.readline()方法从标准输入流中读取一行文本,并将其存储在input_str变量中。然后,使用sys.stdout.write()方法将该文本输出到标准输出流中。

  • 需要注意的是,在使用标准输入输出流时,需要根据具体的操作系统和环境来调整相关设置。例如,在一些特殊情况下,可能需要禁用缓冲区,以避免输出延迟。在Python中,可以使用sys.stdout.flush()方法来刷新标准输出流的缓冲区,以确保输出立即生效。

    总之,标准输入输出是计算机操作系统中的重要概念,用于表示程序与外部环境之间的输入输出流。在Python中,可以使用sys.stdinsys.stdout对象来访问标准输入输出流,以实现与外部环境的交互。

sys.stdin

  • # stdin_demo.py
    import sysfor line in sys.stdin:if 'q' == line.rstrip():breakprint(f'Input : {line}')print("Exit")
    • (d:\condaPythonEnvs\tf210) PS C:\Users\cxxu\ser\testers> py .\stdin_demo.py 
      1
      Input : 12
      Input : 2q
      Exit
      

input()

  • # input_demo.py
    inp = input("Type anything:")# prints inp
    print(inp)
(d:\condaPythonEnvs\tf210) PS C:\Users\cxxu\ser\testers> py .\input_demo.py
Type anything:123
123

sys.stdin.input@input()

  • # stdin_readline_demo.py
    # Python program to demonstrate
    # sys.stdin.readline()import sys
    print("read string:")
    name = sys.stdin.readline()
    print(repr(name),type(name))#可以控制读入的字符数
    print("read 2 digit:")
    num = sys.stdin.readline(2)
    print(num,type(num))
    # 比较input()
    line=input("read by input():")
    print(repr(line),type(line))
  • (d:\condaPythonEnvs\tf210) PS D:\repos\CCSER\emotion-recognition-using-speech\testers> py .\stdin_readline_demo.py
    read string:
    cxxu
    'cxxu\n' <class 'str'>
    read 2 digit:
    123
    12 <class 'str'>
    read by input():cxxu
    'cxxu' <class 'str'>
    

交互模式

  • (d:\condaPythonEnvs\tf210) PS C:\Users\cxxu\ser\testers> py
    Python 3.9.16 (main, Mar  8 2023, 10:39:24) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> name = sys.stdin.readline()
    cxxu
    >>> print(name,type(name))
    cxxu<class 'str'>
    >>> len(name)
    5
    >>> num=sys.stdin.readline()
    123
    >>> num
    '123\n'
    >>> name=sys.stdin.readline()
    cxxu>>> name
    'cxxu\n'
    >>> print(name+"tailing")
    cxxu
    tailing
    >>> name+"tailing"       
    'cxxu\ntailing'
    
  • 可以看到,使用print()打印出来的内容会将\n作为换行效果显示出来

小结

  • input()函数和sys.stdin.readline()方法都可以用于从标准输入流中读取一行文本(字符串)。在大多数情况下,这两种方法的功能是相似的,可以互相替代。

  • 但是,它们还是有一些区别的:

  • input()函数自动去除读取到的字符串中的末尾换行符,而sys.stdin.readline()方法不会自动去除换行符。这意味着,如果使用sys.stdin.readline()方法读取一行文本,需要手动去除字符串末尾的换行符。

    例如,以下代码使用input()函数读取一行文本,并输出该文本的长度:

    input_str = input()
    print(len(input_str))
    

    该代码会从标准输入流中读取一行文本,自动去除末尾的换行符,并输出该文本的长度。

    而以下代码使用sys.stdin.readline()方法读取一行文本,需要手动去除字符串末尾的换行符:

    import sysinput_str = sys.stdin.readline().rstrip('\n')
    print(len(input_str))
    

    该代码会从标准输入流中读取一行文本,然后使用rstrip('\n')方法去除字符串末尾的换行符,并输出该文本的长度。

  • input()函数会将读取到的字符串进行解析,返回一个Python对象,而sys.stdin.readline()方法则直接返回一个字符串。这意味着,如果需要将读取到的字符串转换为其他类型的Python对象(如整数或浮点数),则需要使用input()函数比较放便。

    例如,以下代码使用input()函数读取一个整数,并输出该整数的平方:

    input_num = int(input())
    print(input_num ** 2)
    

    该代码会从标准输入流中读取一个整数,将其转换为整数类型,然后输出该整数的平方。

    而以下代码使用sys.stdin.readline()方法读取一个整数,并需要手动将其转换为整数类型:

    import sysinput_num = int(sys.stdin.readline().rstrip('\n'))
    print(input_num ** 2)
    

    该代码会从标准输入流中读取一个字符串(包括末尾的换行符),然后使用rstrip('\n')方法去除字符串末尾的换行符,并将其转换为整数类型,然后输出该整数的平方。

    总之,input()函数和sys.stdin.readline()方法都可以用于从标准输入流中读取一行文本,但是在使用它们时需要根据具体情况选择适合的方法,并注意它们的区别。

sys.stdout

  • # stdin_out.py
    import sysprint("使用stdin.readline()读取输入(从命令行读取输入):")
    input_str = sys.stdin.readline()
    print("<<<<<<<<<<")
    print("使用repr检查换行符等转义字符",repr(input_str))
    print("使用sys.stdout.write()将内容写出到终端:")
    sys.stdout.write(repr(input_str))#不同于print()不会追加换行
    print("<<<<<<<<<<")
    • (d:\condaPythonEnvs\tf210) PS C:\Users\cxxu\ser\testers> py .\stdin_out.py
      使用stdin.readline()读取输入(从命令行读取输入):
      123
      <<<<<<<<<<
      使用repr检查换行符等转义字符 '123\n'
      使用sys.stdout.write()将内容写出到终端:
      '123\n'<<<<<<<<<<
      

sys.stdout.wirte()@print()

  • sys.stdout.write()方法和print()函数都可以用于向标准输出流中输出信息。但是,它们在输出方式和输出效果上有一些区别。

    1. 输出方式:sys.stdout.write()方法需要手动添加换行符,而print()函数会在输出结束后自动添加换行符。

    例如,以下代码使用sys.stdout.write()方法输出一行文本,并手动添加换行符:

    import syssys.stdout.write('Hello, world!\n')
    

    该代码会向标准输出流中输出字符串'Hello, world!',并手动添加一个换行符。

    而以下代码使用print()函数输出一行文本,无需手动添加换行符:

    print('Hello, world!')
    

    该代码会向标准输出流中输出字符串'Hello, world!',并自动添加一个换行符。

    1. 输出效果:sys.stdout.write()方法输出的文本可以与其他输出保持在同一行,而print()函数输出的文本会自动换行,与其他输出分开。

    例如,以下代码使用sys.stdout.write()方法输出两个字符串,在同一行中显示:

    import syssys.stdout.write('Hello, ')
    sys.stdout.write('world!\n')
    

    该代码会向标准输出流中输出字符串'Hello, '和字符串'world!',并在它们之间没有换行符,输出结果为'Hello, world!\n'

    而以下代码使用print()函数输出两个字符串,在不同行中显示:

    print('Hello, ')
    print('world!')
    

    该代码会向标准输出流中输出字符串'Hello, '和字符串'world!',并在它们之间自动添加一个换行符,输出结果为:

    Hello, 
    world!
    

    总之,sys.stdout.write()方法和print()函数都可以用于向标准输出流中输出信息,但是在使用它们时需要根据具体情况选择适合的方法,并注意它们的输出方式和输出效果。

从文件读取@fileinput

  • fileinput — Iterate over lines from multiple input streams — Python 3.11.2 documentation

fileinput.input()@从文件输入内容

  • 如果是单个文件,可以使用open函数:open()

  • 如果是多个文件,可以使用fileinput.input函数

  • #构造两个简单文件:
    echo "f1 file">f1
    echo "f2 file">f2
    
  • # fileinput_demo.py
    import fileinputwith fileinput.input(files=('f1', 'f2')) as f:# python3.10后支持encoding等参数for line in f:# process(line)print(line)
  • (d:\condaPythonEnvs\tf210) PS C:\Users\cxxu\ser\testers> py .\fileinput_demo.py
    f1 filef2 file	
    

命令行参数提供文件名

  • # fileinput_cli.py
    import fileinput
    import sys
    print(sys.argv)
    for f in fileinput.input():print(f)
  • (d:\condaPythonEnvs\tf210) PS C:\Users\cxxu\ser\testers> py .\fileinput_cli.py f1 f2
    ['.\\fileinput_cli.py', 'f1', 'f2']
    f1 filef2 file
    

小结

  • 总之,虽然os.system函数可以方便地执行简单的命令,但在编写复杂脚本时建议使用更安全和灵活的subprocess模块。

相关文章:

python@调用系统命令行@os.system@subprocess@标准输入输出@sys.stdin@sys.stdout@input@print

文章目录python调用系统命令行os.system标准输入输出sys.stdinsys.stdoutinputprint概要os.systemdemoswindows命令解释器ComSpecsubprocessrecommended&#x1f388;基本用法demos标准输入输出sys.stdininput()sys.stdin.inputinput()交互模式小结sys.stdoutsys.stdout.wirte(…...

手握数据智能密钥,诸葛智能打开数字化经营“三重门”

科技云报道原创。 如果说上世纪传统麦迪逊大街上的“广告狂人”吸金立足之本&#xff0c;还主要是基于“Big Idea”的话&#xff0c;那么在当下&#xff0c;数据正在成为企业营销和运营的金矿。 这是一个“人与机器共同进化”的时代&#xff0c;技术作为延伸人类感觉的媒介之…...

C语言可以实现各种滤波算法

C语言可以实现各种滤波算法&#xff0c;以下是一些常见的滤波算法&#xff1a; 均值滤波&#xff08;Mean Filter&#xff09;&#xff1a;将图像中每一个像素周围一定区域内的灰度值取平均值作为该像素的新灰度值&#xff0c;用于去除高斯噪声等随机噪声。 下面是一个简单的 C…...

使用Netty,当然也要了解它的连接闲置处理

连接闲置网络连接的闲置指的是当前网络连接处于空闲状态&#xff0c;即没有正在进行的数据传输或通信活动。当我们的某个连接不再发送请求或者接收响应的时候&#xff0c;这个连接就开始处于闲置状态。网络连接的闲置时间越长&#xff0c;说明该连接越不活跃。此时&#xff0c;…...

2、K-Planes

运行配置 主页&#xff1a;https://sarafridov.github.io/K-Planes/ 代码&#xff1a;https://github.com/sarafridov/K-Planes 预训练权重&#xff1a;https://drive.google.com/drive/folders/1zs_folzaCdv88y065wc6365uSRfsqITH Neural_3D_Video_Dataset&#xff1a;htt…...

张文海教授课题组在国际高水平期刊《Cerebral Cortex》发表研究成果

调节悲伤情绪对于维持伴侣间的浪漫关系至关重要。人际情绪调节策略包括情感参与&#xff08;AE&#xff09;和认知参与&#xff08;CE&#xff09;&#xff0c;这两种策略在浪漫关系中效用如何&#xff1f;它们是如何通过情感纽带调节伴侣情绪的&#xff1f;其背后的脑际神经互…...

ffmpeg4.1 源码学习之-转封装

前言 ffmpeg 的源码量非常的多&#xff0c;而且非常繁杂&#xff0c;非常多的函数&#xff0c;如果一个函数一个函数看的话要花费比较多的时间。所以本文通过跟踪ffmpeg转封装的过程来学习ffmpeg的源码具体转封装的命令&#xff1a;ffmpeg -i 1_cut.flv -c copy -f mp4 1.mp4在…...

ChatGPT写作文章-快速使用ChatGPT不用注册方式

如何更好地使用ChatGPT批量生成文章&#xff1a;详细教程 作为一款强大的文本生成器&#xff0c;ChatGPT可以帮助您快速、高效地批量生成文章。但如果您还不知道如何更好地使用ChatGPT&#xff0c;那么这篇详细的列表教程将会指导您如何使用它来生成高质量的文章&#xff0c;提…...

Nginx配置ip白名单(服务权限控制)

Nginx服务器权限控制&#xff1a;Nginx 是一款高性能的 HTTP 和反向代理服务器。它可以通过配置文件实现权限控制&#xff0c;从而限制或允许特定的 IP 地址、网络或用户访问指定的资源。这里是一些基本的 Nginx 权限控制方法&#xff1a; 1. 基于 IP 地址的访问控制 在 Ngin…...

Vue 核心(二)

文章目录Vue 核心&#xff08;二&#xff09;八、 绑定样式1、 class2、 style九、 条件渲染1、 渲染指令2、 使用示例十、 列表渲染1、 基本语法2、 key原理3、 列表过滤4、 列表排序5、 数组更新检测6、 大总结十一、 收集表单数据十二、 内置指令1、 v-text2、 v-html3、 v-…...

犯罪现场还原虚拟vr训练平台突破各种教学限制

在当今社会矛盾日益凸显、各式犯罪层出不穷的背景下&#xff0c;创新改革公安院校实战化教学方式&#xff0c;强化对基层公安队伍实战化应用型人才的供给能力具有重要性、紧迫性。 案件现场勘查是门技术活&#xff0c;如何让民警快速有效提升技能、服务实战? 常规刑侦专业现场…...

LeetCode 617. 合并二叉树 | C++语言版

LeetCode 617. 合并二叉树 | C语言版LeetCode 617. 合并二叉树题目描述解题思路思路一&#xff1a;使用递归代码实现运行结果参考文章&#xff1a;思路二&#xff1a;减少遍历节点数代码实现运行结果参考文章&#xff1a;LeetCode 617. 合并二叉树 题目描述 题目地址&#xf…...

Python量化交易08——利用Tushare获取日K数据

总有同学问我要数据...很多第三方接口都能直接获取数据的&#xff0c;本次介绍怎么用Tushare库获取A股日k线行情的数据。 Tushare有两个版本&#xff0c;老版现在快弃用了。 新版的官网链接在这&#xff1a;Tushare数据 需要注册一个账号&#xff0c;然后改一下资料&#xff0…...

30张精美可视化大屏,无需代码直接套用,解决你95%的大屏需求!

通常制作可视化大屏&#xff0c;一般有两种方式 代码开发&#xff1a;写代码调用数据和图表库&#xff0c;比如写JSEcharts &#xff1b; 可视化工具&#xff1a;用现成的数据可视化工具 前者简单直接&#xff0c;直接写代码就完事。但对于大部分人来说门槛较高&#xff0c;维…...

TCP网络事件模型的封装1.0

TCP网络模型的封装 最近学习了TCP网络模型的封装&#xff0c;其中运用的封装技术个人感觉有点绕 在反复读代码、做思维导图下初步理解了这套封装模型&#xff0c;不禁感叹原来代码还能这样写&#xff1f;神奇&#xff01; 为此将源码分享出来并将流程图画出&#xff0c;方便…...

NC271.二叉搜索树的后序遍历序列

文章目录一、题目描述二、示例三、主要思路一、题目描述 输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true ,否则返回 false 。假设输入的数组的任意两个数字都互不相同。 提示&#xff1a; 1.二叉搜索树是指父亲节点大于左子树中…...

研究fastdds v2.8.0 1之 基础模块

阅读 dds 协议 1.4 版本 &#xff0c; 结合fastdds 2.8 的代码理解dds。 Entity 理解 DCPS基础设施模块由以下类组成&#xff1a; Entity DomainEntity QosPolicy Listener Status WaitSet Condition GuardCondition StatusCondition1、Entity 是所有DCPS 对象的基础类 virt…...

ElasticSearch系列 - SpringBoot整合ES:精确值查询 term

文章目录01. ElasticSearch term 查询&#xff1f;02. ElasticSearch term 查询数值型数据&#xff1f;03. ElasticSearch term 查询字符串类型数据&#xff1f;04. ElasticSearch term 查询日期型数据&#xff1f;05. ElasticSearch term 查询日期型数据的注意事项&#xff1f…...

关于async/await、promise和setTimeout执行顺序

关于async/await、promise和setTimeout执行顺序 async function async1() {console.log(async1 start);await async2();console.log(asnyc1 end); } async function async2() {console.log(async2); } console.log(script start); setTimeout(() > {console.log(setTimeOut…...

2023-03-31:如何计算字符串中不同的非空回文子序列个数?

2023-03-31&#xff1a;给定一个字符串 s&#xff0c;返回 s 中不同的非空 回文子序列 个数&#xff0c; 通过从 s 中删除 0 个或多个字符来获得子序列。 如果一个字符序列与它反转后的字符序列一致&#xff0c;那么它是 回文字符序列。 如果有某个 i , 满足 ai ! bi &#xff…...

D. The Number of Imposters(二分图染色)

Problem - D - Codeforces Theofanis开始玩名为“Among them”的新网络游戏。然而&#xff0c;他总是和塞浦路斯球员一起踢球&#xff0c;他们都有一个相同的名字:“安德烈亚斯”(塞浦路斯最常见的名字)。在每个游戏中&#xff0c;Theofanis和n个其他玩家一起玩。因为它们都有相…...

图片太大怎么改小kb?简单的图片压缩方法分享

平时当我们在朋友圈分享一些有趣的照片或者使用图片素材进行上传的时候&#xff0c;经常遇到图片大小kb超出平台限制的情况&#xff0c;这时就无法正常上传了&#xff0c;遇到这种情况我们就需要想办法降低图片大小kb&#xff0c;那么有什么办法能够压缩图片大小呢&#xff1f;…...

【python-leecode刷题】动态规划类问题----以53. 最大子数组和为例

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。…...

Idea常用快捷键设置

设置来源于尚硅谷宋红康老师 第1组&#xff1a;通用型 说明 快捷键 复制代码-copy ctrl c 粘贴-paste ctrl v 剪切-cut ctrl x 撤销-undo ctrl z 反撤销-redo ctrl shift z 保存-save all ctrl s 全选-select all ctrl a 第2组&#xff1a;提高编写速度&#xff08;上…...

【新2023Q2模拟题JAVA】华为OD机试 - 分苹果

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:分苹果 题目 AB两个人把苹果…...

【博学谷学习记录】超强总结,用心分享丨人工智能 自然语言处理 BERT、GPT、ELMO对比学习简记

目录三模型架构BERTGPTELMO三者差异点三模型架构 BERT 优点 在11个NLP任务上取得SOAT成绩.利用了Transformer的并行化能力以及长语句捕捉语义依赖和结构依赖.BERT实现了双向Transformer并为后续的微调任务留出足够的空间. 缺点 BERT模型太大, 太慢.BERT模型中的中文模型是以…...

【嵌入式Bluetooth应用开发笔记】第四篇:初探蓝牙HOST及应用开发(持续更新ing)

概念 蓝牙HOST(Bluetooth Host)是指能够连接到其他蓝牙设备并控制它们的设备。在蓝牙技术中,通常有两种类型的设备:蓝牙HOST和蓝牙SLAVE。蓝牙HOST通常是指拥有控制权的设备,它可以主动连接其他蓝牙设备并向其发送命令。相反,蓝牙SLAVE则是指被动连接的设备,它接受来自…...

GORM 基础 -- CRUD 接口

1、Create 1.1 创建纪录 user : User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}result : db.Create(&user) // pass pointer of data to Createuser.ID // 回填插入数据的主键 result.Error // 返回的 error 信息 result.RowsAffect…...

为什么0代码自动化测试越来越受欢迎?一文2000字解析

目录 01、什么是零代码自动化测试 02、为什么零代码自动化测试越来越受欢迎 03、有代码和零代码自动化有什么区别 04、零代码自动化测试可以帮助你做什么 05、零代码自动化测试方法&#xff1a;NLP&#xff08;自然语言处理&#xff09; 06、为什么我们需要零代码自动化测…...

cleanmymac最新2023版 mac清理软件CleanMyMac X4.12.5 中文版功能介绍

CleanMyMac X4.12.5 中文版只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉&#xff0c;节省宝贵的磁盘空间。cleanmymac x个人认为X代表界面上的最大升级&#xff0c;功能方面有更多增加&#xff0c;与最新macOS系统更加兼容&#xff0c;流畅地与系统性能更加…...