【Python文件】操作终极指南:高效管理和处理文件系统的必备技能

news2024/11/17 6:42:15

目录

​编辑

1. 文件的基础操作

1.1 打开/关闭文件

​编辑

示例代码

文件对象

使用with语句打开文件

2. 读文件

2.1 使用read方法读取文件

2.2 使用readline方法读取文件

2.3 使用readlines方法读取文件

2.4 使用for循环读取文件

3. 写文件

3.1 使用write方法写文件

3.2 使用writelines方法写文件

3.3 关于读写缓冲区

4. 操作文件指针

4.1 使用seek方法操作文件指针

4.2 使用tell方法获取文件指针位置

4.3 示例:随机访问文件内容

5. 文件对象内建属性与上下文管理器

5.1 文件对象的内建属性

5.2 使用上下文管理器打开文件

5.3 自定义上下文管理器

6. 文件系统的基础操作

6.1 文件路径操作

6.2 常用文件系统操作

创建文件

删除文件

创建目录

删除目录

遍历目录

6.3 使用os.walk函数递归遍历目录

6.4 代码示例:用Python生成一个Python的Hello World文件并执行

6.5 代码示例:实现ls命令

6.6 代码示例:遍历目录中的所有目录和文件

总结

1. 文件的基础操作

2. 读文件

3. 写文件

4. 操作文件指针

5. 文件对象内建属性与上下文管理器

6. 文件系统的基础操作


 

专栏:python学习笔记 

上一篇:python字典详解

1. 文件的基础操作

1.1 打开/关闭文件

在Python中,使用内置函数open可以打开一个指定路径下的文件,并返回一个文件对象。常用的打开方式有:

  • 'r':读(默认)
  • 'w':写
  • 'a':追加写
  • 'b':二进制模式

open函数的第一个参数是文件名,可以是相对路径或者绝对路径,第二个参数是打开方式。以下是各种打开方式的详细解释:

  • 'r':以只读模式打开文件。文件指针将会放在文件的开头。这是默认模式,如果文件不存在,则会抛出FileNotFoundError
  • 'w':以写模式打开文件。如果文件已存在,则会覆盖原文件。如果文件不存在,则会创建新文件。
  • 'a':以追加模式打开文件。文件指针将会放在文件的末尾。如果文件不存在,则会创建新文件。
  • 'b':以二进制模式打开文件。此模式用于读写二进制文件,如图片、视频等。可以与其他模式结合使用,如'rb''wb''ab'等。
示例代码

以下是一个简单的示例,演示如何打开和关闭文件:

# 打开文件以读取模式
file = open('example.txt', 'r')

# 关闭文件
file.close()

分析: 在上面的示例中,我们使用open函数以读取模式打开了一个名为example.txt的文件。完成操作后,我们使用close方法关闭文件。这是一个良好的实践,因为每个打开的文件都会占用系统资源。

但是,如果文件不存在,会发生什么呢?:

try:
    file = open('non_existent_file.txt', 'r')
    file.close()
except FileNotFoundError:
    print("文件不存在")

 

分析: 上述代码尝试打开一个不存在的文件。由于文件不存在,open函数会抛出FileNotFoundError异常。我们使用try-except块捕获并处理该异常,以避免程序崩溃。

文件对象

在Python中,文件对象不仅包含了文件描述符,还包含了文件的一些其他属性。文件描述符是一个整数,它唯一标识一个打开的文件。操作系统通过文件描述符进行文件操作。

文件对象支持的方法:

  • read(size=-1):从文件读取指定数量的字节。如果未指定size,则读取整个文件。
  • readline(size=-1):读取文件的一行。如果指定了size,则最多读取size个字节。
  • readlines(hint=-1):读取文件的所有行并返回一个列表。如果指定了hint,则返回总字节数不超过hint的行。
  • write(string):将字符串写入文件。
  • writelines(lines):将字符串列表写入文件。
  • close():关闭文件。

使用with语句打开文件

为了简化文件操作并确保文件在使用完毕后自动关闭,Python引入了上下文管理器,这使得可以使用with语句来打开文件。with语句会自动管理文件的打开和关闭操作。

示例代码:

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

 

 遇到的错误是由于Python默认使用的编码格式与文件的实际编码格式不匹配。可以通过显式指定文件的编码格式来解决这个问题。如果不确定文件的编码格式,可以尝试使用常见的编码格式,比如UTF-8。

文件的编码格式有很多,常见的包括以下几种:

  1. UTF-8(Unicode Transformation Format - 8-bit):是一种可变长度字符编码,能表示所有Unicode字符,是目前最常用的编码格式。
  2. UTF-16(Unicode Transformation Format - 16-bit):也是一种Unicode字符编码格式,使用16位及以上编码字符,适合需要支持所有Unicode字符的大型文本。
  3. UTF-32(Unicode Transformation Format - 32-bit):每个字符固定使用32位进行编码,简化了字符处理过程,但文件会更大。
  4. ASCII(American Standard Code for Information Interchange):早期的字符编码标准,只包含128个字符,用7位或8位编码,适合英文文本。
  5. ISO-8859-1(Latin-1):是一种单字节字符编码,支持西欧语言,用8位编码。
  6. GBK(扩展国标):是中文字符集,兼容GB2312,扩展支持更多汉字及符号。
  7. GB2312:早期的中文字符集标准,只包含部分常用汉字和符号。
  8. BIG5:是台湾和香港地区使用的中文编码标准,与GBK类似。

你可以根据文件的实际编码选择合适的编码格式。在Python中,可以通过指定encoding参数来设置文件的编码格式。

下面是修改后的代码:

with open('example.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

 

分析: 在这个示例中,with语句块内的所有操作都可以使用file对象进行。当with语句块结束时,文件会自动关闭。这种方式不仅简洁,而且可以确保文件总是被正确关闭,即使在出现异常时也是如此。

小李的理解: 文件操作时要记得关闭文件,不然会占用资源。用with语句可以自动帮你关掉文件,不用担心忘记关。

2. 读文件

读文件是文件操作中最常见的任务之一。Python提供了多种方法来读取文件内容,包括readreadlinereadlines

2.1 使用read方法读取文件

read方法用于读取指定长度的字节数,并返回一个字符串。如果未指定size,则读取整个文件。该方法适用于读取较小的文件,因为它会将文件内容一次性加载到内存中。

示例代码:

with open('example.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

分析: 在这个示例中,使用read方法读取了整个文件的内容,并将其打印出来。

2.2 使用readline方法读取文件

readline方法用于读取文件的一行,并返回一个字符串。每次调用该方法,文件指针都会向下移动一行,直到文件末尾。

若example.txt 有两行

示例代码:

with open('example.txt', 'r', encoding='utf-8') as file:
    line = file.readline()
    while line:
        print(line, end='')
        line = file.readline()

分析: 在这个示例中,使用readline方法逐行读取文件,并将每一行打印出来。end=''参数用于避免在每行末尾添加额外的换行符,因为readline方法已经保留了行末的换行符。

2.3 使用readlines方法读取文件

readlines方法用于读取文件的所有行,并返回一个列表。列表中的每个元素都是文件的一行。

示例代码:

with open('example.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()
    for line in lines:
        print(line, end='')

 

分析: 在这个示例中,使用readlines方法读取了文件的所有行,并将每一行打印出来。

2.4 使用for循环读取文件

除了上述方法,还可以直接使用for循环遍历文件对象。每次迭代都会返回文件的一行,这种方法在处理大文件时非常高效。

示例代码:

with open('example.txt', 'r', encoding='utf-8') as file:
    for line in file:
        print(line, end='')

 

分析: 在这个示例中,使用for循环逐行读取文件,并将每一行打印出来。

小李的理解: 读文件有很多方法,read一次读完,readline一行行读,readlines全部读成列表,for循环更省内存。记住看需求选方法。

3. 写文件

写文件是文件操作中的另一个重要任务。Python提供了writewritelines方法来将数据写入文件。

3.1 使用write方法写文件

write方法用于向文件中写入一个字符串。如果文件以写模式('w')打开,则会覆盖文件的内容。如果文件以追加模式('a')打开,则会在文件末尾追加内容。

示例代码:

with open('output.txt', 'w') as file:
    file.write('Hello, World!\n')
    file.write('小李很执着\n')

 

分析: 在这个示例中,使用write方法向文件中写入了两行文本。每次写入操作都需要显式添加换行符(\n)。

3.2 使用writelines方法写文件

writelines方法用于向文件中写入一个字符串列表。列表中的每个元素都将作为文件的一行写入。

示例代码:

lines = ['第一行文本\n', '第二行文本\n', '第三行文本\n']
with open('output.txt', 'w') as file:
    file.writelines(lines)

 

 

分析: 在这个示例中,使用writelines方法向文件中写入了一个字符串列表。需要注意的是,writelines方法不会自动添加换行符,因此我们需要在每个字符串末尾手动添加换行符。

3.3 关于读写缓冲区

在读写文件时,Python提供了缓冲区机制,以提高文件操作的性能。在使用open函数时,可以通过第三个参数来指定缓冲区大小。

示例代码:

with open('output.txt', 'w', buffering=2048) as file:
    file.write('使用缓冲区写入数据。\n')

分析: 在这个示例中,指定了缓冲区大小为2048字节。缓冲区机制可以减少I/O操作的频率,从而提高性能。可以使用flush方法手动刷新缓冲区,将数据写入文件。

示例代码:

with open('output.txt', 'w', buffering=2048) as file:
    file.write('使用缓冲区写入数据。\n')
    file.flush()

 

分析: 在这个示例中,在写入数据后调用flush方法,将缓冲区中的数据立即写入文件。

小李的理解: 写文件要加换行符,不然会连在一起。缓冲区像个临时储物柜,可以提高速度。用flush可以马上把数据存到文件里。

4. 操作文件指针

文件指针用于指示当前文件操作的位置。在读写文件时,可以通过文件指针来实现随机访问。Python提供了seektell方法来操作文件指针。

4.1 使用seek方法操作文件指针

seek方法用于将文件指针移动到指定位置。seek方法有两个参数:

  • offset:表示偏移量。
  • whence:表示偏移量的起始位置。可选值为:
    • 0:从文件开头计算(默认)。
    • 1:从当前位置计算。
    • 2:从文件末尾计算。

示例代码:

with open('example.txt', 'r') as file:
    file.seek(10, 0)
    content = file.read()
    print(content)

 

分析: 在这个示例中,使用seek方法将文件指针移动到文件开头的第10个字节处,然后读取文件内容并打印。

4.2 使用tell方法获取文件指针位置

tell方法用于获取当前文件指针的位置,返回值是文件指针到文件开头的偏移量(以字节为单位)。

示例代码:

with open('example.txt', 'r', encoding='gbk') as file:
    file.seek(10, 0)
    position = file.tell()
    print(f"文件指针位置:{position}")

 

分析: 在这个示例中,使用seek方法将文件指针移动到文件开头的第10个字节处,然后使用tell方法获取当前文件指针的位置并打印。

4.3 示例:随机访问文件内容

通过结合使用seektell方法,可以实现文件的随机访问。例如,我们可以实现一个功能,从文件的任意位置读取特定长度的内容。

示例代码:

def read_from_position(file_path, position, length):
    with open(file_path, 'r', encoding='utf-8') as file:
        file.seek(position, 0)
        content = file.read(length)
        return content

file_path = 'example.txt'
position = 10
length = 20

content = read_from_position(file_path, position, length)
print(f"从位置{position}读取的内容:{content}")

 

分析: 在这个示例中,定义了一个函数read_from_position,用于从指定位置读取特定长度的内容。我们通过传入文件路径、读取位置和读取长度来调用该函数,并打印读取到的内容。

小李的理解: 文件指针像磁带播放器的磁头,可以定位到文件的任意位置开始读写。seek是移动指针,tell是告诉你指针的位置。

5. 文件对象内建属性与上下文管理器

文件对象除了支持基本的读写操作外,还提供了一些内建属性和方法。此外,Python引入了上下文管理器,使得文件操作更加简洁和安全。

5.1 文件对象的内建属性

文件对象具有以下常用属性:

  • name:文件的名称。
  • mode:文件的打开模式。
  • closed:文件是否已关闭。

示例代码:

with open('example.txt', 'r') as file:
    print(f"文件名:{file.name}")
    print(f"打开模式:{file.mode}")
    print(f"是否关闭:{file.closed}")

 

分析: 在这个示例中,使用文件对象的属性获取文件的名称、打开模式以及文件是否已关闭。

5.2 使用上下文管理器打开文件

上下文管理器通过with语句来管理资源的打开和关闭。在文件操作中,使用上下文管理器可以确保文件在操作完成后自动关闭,即使在发生异常时也是如此。

示例代码:

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

 

分析: 在这个示例中,使用with语句打开文件,并在语句块内读取文件内容。当with语句块结束时,文件会自动关闭。

5.3 自定义上下文管理器

除了内置的文件对象,Python还允许我们自定义上下文管理器。要创建一个自定义上下文管理器,需要实现__enter____exit__方法。

示例代码:

class CustomFile:
    def __init__(self, file_name, mode):
        self.file_name = file_name
        self.mode = mode

    def __enter__(self):
        self.file = open(self.file_name, self.mode)
        return self.file

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.file.close()

with CustomFile('example.txt', 'r') as file:
    content = file.read()
    print(content)

 

分析: 在这个示例中,定义了一个自定义上下文管理器CustomFile,并实现了__enter____exit__方法。在__enter__方法中打开文件,并返回文件对象。在__exit__方法中关闭文件。这样,我们就可以使用with语句来管理文件操作了。

小李的理解: 文件对象有一些属性可以方便查询。用with语句打开文件,文件会自动关闭,不用担心忘记关。如果要管理更多资源,可以自定义上下文管理器。

6. 文件系统的基础操作

除了基本的文件读写操作,Python还提供了对文件系统进行操作的功能,包括文件路径操作和常用文件系统操作。

6.1 文件路径操作

使用os.path模块可以方便地进行文件路径操作。该模块提供了许多实用的函数来处理文件路径。

示例代码:

import os.path

# 获取文件名
file_name = os.path.basename('/home/user/example.txt')
print(f"文件名:{file_name}")

# 获取目录路径
dir_name = os.path.dirname('/home/user/example.txt')
print(f"目录路径:{dir_name}")

# 分割路径
path, file = os.path.split('/home/user/example.txt')
print(f"路径:{path}, 文件:{file}")

# 分离文件名和扩展名
name, ext = os.path.splitext('/home/user/example.txt')
print(f"文件名:{name}, 扩展名:{ext}")

 

分析: 在这个示例中,使用os.path模块的函数来获取文件名、目录路径、分割路径以及分离文件名和扩展名。

6.2 常用文件系统操作

使用os模块可以进行文件和目录的操作,如创建文件、删除文件、遍历目录等。

创建文件

使用open函数可以创建文件。如果文件不存在,open函数会自动创建新文件。

示例代码:

with open('new_file.txt', 'w') as file:
    file.write('这是一个新文件。')

 

分析: 在这个示例中,使用open函数创建了一个名为new_file.txt的新文件,并向其中写入了一段文本。

删除文件

使用os.remove函数可以删除文件。此函数接受一个文件路径作为参数,如果文件不存在,则会引发FileNotFoundError异常。

示例代码:

import os

file_path = 'new_file.txt'

# 检查文件是否存在
if os.path.exists(file_path):
    os.remove(file_path)
    print(f"文件 {file_path} 已删除")
else:
    print(f"文件 {file_path} 不存在")

 

分析: 在这个示例中,首先检查文件是否存在,然后调用os.remove函数删除文件。

创建目录

使用os.mkdir函数可以创建目录。此函数接受一个目录路径作为参数。如果目录已存在,则会引发FileExistsError异常。

示例代码:

import os

dir_path = 'new_directory'

# 创建新目录
if not os.path.exists(dir_path):
    os.mkdir(dir_path)
    print(f"目录 {dir_path} 已创建")
else:
    print(f"目录 {dir_path} 已存在")

 

分析: 在这个示例中,首先检查目录是否存在,然后调用os.mkdir函数创建目录。

删除目录

使用os.rmdir函数可以删除空目录。此函数接受一个目录路径作为参数。如果目录不为空,则会引发OSError异常。

示例代码:

import os

dir_path = 'new_directory'

# 删除目录
if os.path.exists(dir_path) and os.path.isdir(dir_path):
    os.rmdir(dir_path)
    print(f"目录 {dir_path} 已删除")
else:
    print(f"目录 {dir_path} 不存在或不是目录")

 

分析: 在这个示例中,首先检查目录是否存在并且是否为目录,然后调用os.rmdir函数删除目录。

遍历目录

使用os.listdir函数可以列出指定目录中的所有文件和目录。此函数接受一个目录路径作为参数,返回该目录中的所有文件和目录名的列表。

示例代码:

import os

dir_path = '.'

# 列出目录中的所有文件和目录
entries = os.listdir(dir_path)
for entry in entries:
    print(entry)

 

分析: 在这个示例中,使用os.listdir函数列出了当前目录中的所有文件和目录。

6.3 使用os.walk函数递归遍历目录

os.walk函数可以递归遍历目录树,生成一个包含目录路径、目录名列表和文件名列表的三元组。

import os

dir_path = '.'

# 递归遍历目录
for root, dirs, files in os.walk(dir_path):
    print(f"目录路径: {root}")
    print(f"目录名列表: {dirs}")
    print(f"文件名列表: {files}")
    print('-----')

 

分析: 在这个示例中,使用os.walk函数递归遍历当前目录及其子目录,并打印每个目录的路径、目录名列表和文件名列表。

6.4 代码示例:用Python生成一个Python的Hello World文件并执行

可以使用os模块创建一个Python脚本文件,并使用os.system函数执行该脚本。

示例代码:

import os

file_name = 'hello.py'

# 创建并写入Python脚本
with open(file_name, 'w') as file:
    file.write('#!/usr/bin/python\n')
    file.write('print("Hello, World!")\n')

# 设置脚本为可执行
os.chmod(file_name, 0o755)

# 执行Python脚本
os.system(f'./{file_name}')

 

 

分析: 在这个示例中,我们首先创建一个名为hello.py的Python脚本文件,并向其中写入Hello, World!打印语句。然后,我们使用os.chmod函数设置文件为可执行,最后使用os.system函数执行该脚本。

6.5 代码示例:实现ls命令

可以使用os模块实现类似ls命令的功能,列出指定目录中的所有文件和目录。

示例代码:

import os
import sys

# 获取命令行参数中的目录路径
dir_path = sys.argv[1] if len(sys.argv) > 1 else '.'

# 列出目录中的所有文件和目录
for entry in os.listdir(dir_path):
    print(entry)

 

分析: 在这个示例中,从命令行参数中获取目录路径,并使用os.listdir函数列出该目录中的所有文件和目录。如果未提供目录路径,则默认列出当前目录。

6.6 代码示例:遍历目录中的所有目录和文件

我们可以使用os.walk函数递归遍历目录中的所有目录和文件,并打印每个文件的完整路径。

示例代码:

import os
import sys

# 获取命令行参数中的目录路径
dir_path = sys.argv[1] if len(sys.argv) > 1 else '.'

# 递归遍历目录
for root, dirs, files in os.walk(dir_path):
    for file in files:
        print(os.path.join(root, file))

 

分析: 在这个示例中,从命令行参数中获取目录路径,并使用os.walk函数递归遍历目录中的所有目录和文件,并打印每个文件的完整路径。

小李的理解: os.path可以帮你处理路径问题,比如获取文件名和目录。用os模块可以做很多文件和目录的操作,比如创建和删除文件、遍历目录。os.walk可以递归遍历目录,非常强大。

总结

在现代编程环境中,掌握文件操作技能对于开发者来说至关重要。Python作为一种高效、简洁的编程语言,提供了强大的文件操作功能。文件的基本操作、读写文件、文件指针的操作以及文件系统的操作。

1. 文件的基础操作

文件的基础操作是Python文件处理的核心部分。通过使用内置函数openclose,我们可以打开和关闭文件,并确保系统资源的有效利用。使用with语句可以简化文件操作,并确保文件在使用完毕后自动关闭,从而避免资源泄漏。

2. 读文件

Python提供了多种方法来读取文件内容,包括readreadlinereadlines。每种方法都有其独特的适用场景和优势。通过掌握这些方法,我们可以根据具体需求选择最合适的文件读取方式,确保代码的高效性和可维护性。

3. 写文件

写文件是文件操作中的另一个重要任务。Python的writewritelines方法提供了灵活的写入方式。结合使用读写缓冲区,可以进一步提高文件操作的性能。掌握这些写文件的方法,将使您能够高效地处理文件写入任务。

4. 操作文件指针

文件指针操作使我们能够实现文件的随机访问。通过seektell方法,我们可以灵活地控制文件指针的位置,从而实现高效的文件读取和写入。文件指针操作在处理大文件时尤为重要,因为它允许我们在不读取整个文件的情况下访问特定部分的数据。

5. 文件对象内建属性与上下文管理器

文件对象提供了一些内建属性,帮助我们获取文件的基本信息。此外,Python引入了上下文管理器,使得文件操作更加简洁和安全。通过自定义上下文管理器,我们可以管理更多的资源,进一步提高代码的可读性和可靠性。

6. 文件系统的基础操作

Python的osos.path模块提供了丰富的文件系统操作功能,包括文件路径操作、创建和删除文件和目录、遍历目录等。这些功能使我们能够高效地管理文件系统,并实现复杂的文件操作任务。通过掌握这些基础操作,您将能够在各种编程场景中灵活地处理文件系统。

如果您有任何问题或需要进一步的帮助,请随时留言讨论。Happy coding!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1900742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯web组国三选手题纲解析和备赛技巧--经验分享

蓝桥杯web组赛题解析和杯赛技巧 **🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!🙏&am…

论文辅导 | 基于多尺度分解的LSTM⁃ARIMA锂电池寿命预测

辅导文章 模型描述 锂电池剩余使用寿命(Remaining useful life,RUL)预测是锂电池研究的一个重要方向,通过对RUL的准确预测,可以更好地管理和维护电池,延长电池使用寿命。为了能够准确预测锂电池的RUL&…

华为仓颉可以取代 Java 吗?

大家好,我是君哥。 在最近的华为开发者大会上,华为亮相了仓颉编程语言,这是华为历经 5 年,投入大量研发成本沉淀的一门编程语言。 1 仓颉简介 按照官方报告,仓颉编程语言是一款面向全场景智能的新一代编程语言&#…

2024年618已购好物分享(天猫京东小米有品)

2024年618年中购物节已经结束了,这里先给大家分享下2024年618购买的好物以作参考,并附上订单截图和商品二维码,大伙如有心仪的商品可直接扫码下单或先收藏本页。 2024618天猫好物分享 1、蜂花洗发水450ml 超市自营,国民老品牌&a…

CTFShow的RE题(一)

RE2 1.中文字符的显示 2.对文件的读取操作 3.RC4加密 (有一点是魔改的) 4.enflag.txt文件里面的密文是ASCII编码之后的数据(可以放ida中) 也可以放到 010 里(推荐) encDH~mqqvqxB^||zllJq~jkwpmvez{ key for i in enc:keychr…

最新-基于Python的理财和记账系统

博主介绍:👉全网个人号和企业号粉丝40W,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈 ⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到 &am…

C语言之常用内存函数以及模拟实现

目录 前言 一、memcpy的使用和模拟实现 二、memmove的使用和模拟实现 三、memset的使用和模拟实现 四、memcmp的使用和模拟实现 总结 前言 本文主要讲述C语言中常用的内存函数:memcpy、memmove、memset、memcmp。内容不多,除了了解如何使用&#x…

【C++】指针的点运算与箭头运算(->)的奥秘与应用

在编程的世界里,指针作为连接程序与内存之间的桥梁,扮演着至关重要的角色。对于使用C、C等语言进行开发的程序员而言,理解并掌握指针的使用技巧是提升编程能力的必经之路。其中,指针的点运算(.)和箭头运算&…

性价比蓝牙耳机排行榜前十名有哪些?十大性价比蓝牙耳机榜单盘点

作为使用真无线蓝牙耳机长达5-6年的资深爱好者,我始终对音频技术和产品的创新保持着浓厚的兴趣,最近,我投入了一笔不小的资金,超过大几千元,用于深入测试和评估市面上多款来自各大品牌的真无线蓝牙耳机(包括…

【实战项目】:电商网站数据抓取分析||电商API数据采集

导语:在电商行业,了解市场动态和竞争对手的信息非常重要。通过抓取电商网站上的商品数据,我们可以进行市场分析、价格监控和产品趋势研究。本文将介绍如何构建一个系统,自动化抓取电商网站上的商品数据,并进行分析。 …

eBPF 指令宏

linux 6.9.7 指令宏 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ /* eBPF instruction mini library */ #ifndef __BPF_INSN_H #define __BPF_INSN_Hstruct bpf_insn;/* ALU ops on registers, bpf_add|sub|...: dst_reg src_reg */ // BPF_ALU64_REG&am…

轻松创建对象——简单工厂模式(Java实现)

1. 引言 大家好,又见面了!在上一篇文章中,我们通过Python示例介绍了简单工厂模式,今天,我们继续深入这个话题,用Java来实现简单工厂模式。 2. 什么是简单工厂模式 简单工厂模式(Simple Facto…

CorelDRAW2024设计师的神器,一试就爱上!

🎨 CorelDRAW 2024:设计界的瑞士军刀,让创意不再受限!🌟 嗨,各位朋友们!👋🏻 今天我要跟大家分享一个神奇的设计神器——CorelDRAW 2024。作为设计师的你,是否…

谷粒商城----通过缓存和分布式锁获取数据。

高并发下缓存失效的问题 高并发下缓存失效的问题--缓存穿透 指查询一个一定不存在的数据,由于缓存是不命中,将去查询数据库,但是数据库也无此记录,我们没有将这次查询的不写入缓存,这将导致这个不存在的数据每次请求…

【论文阅读】-- Interactive Horizon Graphs:改进多个时间序列的紧凑可视化

Interactive Horizon Graphs: Improving the Compact Visualization of Multiple Time Series 摘要1 引言2 相关工作2.1 多个时间序列的可视化2.2 缩减折线图 (RLC)2.3 地平线图 (HG)2.4 大尺度和小尺度变异数据集2.5 多个时间序列…

IPSS模块怎么安装到VOS服务器的,到底有没有效果,是不是能大幅度提升VOS3000安全性呢

由于VOS的普及性,不得不承认VOS确实是非常优秀的软交换,但是很多客户在使用过程中都会遇到各种安全问题,比如话费被盗用了,历史话单一堆的非法呼叫话单,严重的影响到了话务安全,并不是那点话费的事了&#…

浏览器怎么抓包?Wireshark详细教程奉上!

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…

校园气象站:科学教育与环境感知

在现代化的校园里,一座座高耸的教学楼、郁郁葱葱的绿植、充满活力的学生群体共同构成了一幅生机勃勃的画卷。然而,在这幅画卷中,有一个不可或缺的元素——校园气象站,它不仅是学生们学习气象知识的窗口,更是连接科学与…

【技术支持】vscode代码格式化空格数量问题

问题 使用AltShiftF代码格式化时,发现有些文件格式化后缩进为2格个空格,有些文件正常4个空格 刨析 发现vue创建的文件使用的是两个空格,而且换行符表示方式也不一样 LF 是 Unix 和 Unix-like 系统(如 Linux 和 macOS&#xff0…

边缘概率密度、条件概率密度、边缘分布函数、联合分布函数关系

目录 二维随机变量及其分布离散型随机变量连续型随机变量边缘分布边缘概率密度举例边缘概率密度 条件概率密度边缘概率密度与条件概率密度的区别边缘概率密度条件概率密度举个具体例子 参考资料 二维随机变量及其分布 离散型随机变量 把所有的概率,都理解成不同质量…