您的位置:首页 > 新闻 > 会展 > PYTHON专题-(9)基操之我要玩文件

PYTHON专题-(9)基操之我要玩文件

2025/4/19 18:12:20 来源:https://blog.csdn.net/qq_41914036/article/details/140947392  浏览:    关键词:PYTHON专题-(9)基操之我要玩文件

什么是IO?

  • O在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。
  • 通常,程序完成IO操作会有Input和Output两个数据流。

什么是Stream? 

  • IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。Input Stream就是数据从外面(磁盘、网络)流进内存,Output Stream就是数据从内存流到外面去。

什么是同步IO? 

  • 同步I/O(输入/输出)是指在执行I/O操作时,程序会阻塞等待I/O操作的完成,直到数据被读取或写入完成。
  • 在同步I/O模型中,程序会在执行I/O操作时一直等待直到操作完成,然后再继续执行下一步操作。
  • 同步I/O可以简化代码逻辑,但可能会导致程序的响应速度较慢,特别是在执行大量I/O操作时。

什么是异步IO? 

  • 异步I/O(Asynchronous I/O)是一种编程模型,用于处理I/O操作。在传统的同步I/O模型中,当一个I/O操作发生时,程序会被阻塞,直到操作完成才能继续执行。而在异步I/O模型中,当一个I/O操作被发起后,程序可以继续执行其他任务,而无需等待操作完成。当操作完成后,会触发一个回调函数,通过回调函数处理操作的结果。
  • 异步I/O模型的优势在于能够充分利用CPU的处理能力,避免了因I/O操作的等待而导致的CPU空闲。它适用于处理大量的并发请求,能够提高系统的吞吐量和响应性能。在现代的网络编程中,异步I/O被广泛应用,例如在网络服务器、数据库访问和Web开发中。

读文件和文件之间的区别是什么?

  • 文件是指计算机中存储数据的一种方式,可以包含文本、图片、音频、视频等各种形式的数据。
  • 读文件指的是从文件中获取数据并将其加载到计算机内存中,以便进一步处理或使用。

文件之间的区别主要体现在以下几个方面:

  1. 文件类型:文件可以有不同的类型,如文本文件、图片文件、音频文件等,不同类型的文件存储的数据格式也不同。
  2. 文件内容:不同的文件可能包含的内容不同,例如文本文件包含文本信息,图片文件包含图像数据等。
  3. 文件格式:不同类型的文件可能使用不同的文件格式来存储数据,例如文本文件可以使用TXT、CSV等格式,图片文件可以使用JPEG、PNG等格式。
  4. 文件大小:文件的大小可以根据其中包含的数据量而不同,大型文件可能包含更多的数据。
  5. 文件访问方式:不同类型的文件可以有不同的访问方式,例如文本文件可以使用文本编辑器打开和编辑,图片文件可以使用图片浏览器打开和查看。

总的来说,读文件是指从文件中获取数据,而文件之间的区别则主要体现在文件类型、内容、格式、大小和访问方式等方面。

主要的文件类型包含哪些? 

主要的文件类型包括:

  • 文本文件(.txt):包含纯文本内容的文件。
  • 图像文件(.jpg、.png、.gif等):包含图像或照片的文件。
  • 音频文件(.mp3、.wav等):包含音乐或声音的文件。
  • 视频文件(.mp4、.avi等):包含视频或电影的文件。
  • 压缩文件(.zip、.rar等):包含经过压缩的文件和文件夹。
  • 电子表格文件(.xls、.xlsx等):包含数据和计算公式的文件。
  • 幻灯片文件(.ppt、.pptx等):包含幻灯片展示内容的文件。
  • 数据库文件(.db、.mdb等):包含结构化数据的文件。
  • 可执行文件(.exe、.app等):包含能够运行的程序代码的文件。
  • PDF文件(.pdf):包含可便携式文件格式的文件。
  • 代码文件(.c、.java、.py等):包含程序代码的文件。
  • 电子表格文件(.xls、.xlsx、.csv等):用于存储和处理表格形式的数据,常用于商业和科学领域的数据分析和管理。
  • 幻灯片文件(.ppt、.pptx等):用于创建和展示演示文稿,在教育和商业领域广泛应用。
  • PDF文件(.pdf):用于创建和传输可移植文档格式,适用于各种设备和操作系统,保留文档的格式和布局。
  • 软件安装文件(.exe、.dmg、.apk等):用于安装和运行软件程序。
  • 网页文件(.html、.css、.js等):用于创建和显示网页内容,包括网页结构、样式和交互功能等。
  • 工程文件(.proj、.sln等):用于存储和管理软件开发项目的文件,包括源代码、配置文件、资源文件等。
  • 日志文件(.log):用于记录软件、系统、网络等运行状态和错误信息。
  • 字体文件:以 .ttf、.otf 或 .fon 等格式保存的字体文件,用于在计算机上显示特定的字体样式。
  • 备份文件:以 .bak 或 .backup 等格式保存的文件,用于备份重要数据和恢复文件。

这仅是一些常见的文件类型,实际上还有许多其他不同的文件类型。

python中常使用的文件类型有哪些?

在Python中,常用的文件类型有以下几种:

  1. 文本文件(.txt):普通的文本文件,可以用文本编辑器打开查看和编辑。
  2. Python脚本文件(.py):包含Python代码的文件,可以被Python解释器执行。
  3. CSV文件(.csv):逗号分隔的文本文件,常用于存储和处理表格数据。
  4. JSON文件(.json):JavaScript对象表示法,用于存储和传输结构化数据。
  5. Excel文件(.xlsx、.xls):电子表格文件,常用于存储和处理大量数据。
  6. 图像文件(.jpg、.png、.gif等):存储图像数据的文件,可以进行图像处理和分析。
  7. PDF文件(.pdf):便携式文档格式,常用于存储和传输文档。
  8. XML文件(.xml):可扩展标记语言,用于存储和传输结构化数据。
  9. SQLite数据库文件(.sqlite、.db):轻量级的关系型数据库文件,可以使用SQL操作数据。

这些是常用的文件类型,根据需求和应用领域,还可以有其他特定的文件类型。

python怎么读\写文件? 

  • 要读取文件,可以使用Python的内置函数open()来打开一个文件。下面是一个例子:
    # 打开文件
    file = open("file.txt", "r")# 读取文件内容
    content = file.read()# 关闭文件
    file.close()# 输出文件内容
    print(content)
    

open()函数中,第一个参数是要打开的文件名(可以是相对路径或绝对路径),第二个参数是打开文件的模式。常用的模式有:

  • r:只读模式,默认值,如果文件不存在会抛出异常
  • w:写入模式,如果文件不存在会创建文件,如果文件已存在会清空文件内容
  • a:追加模式,如果文件不存在会创建文件,如果文件已存在则在文件末尾追加内容
  • x:独占创建模式,如果文件已存在会抛出异常
  • b:二进制模式
  • t:文本模式,默认值

你可以根据需要选择合适的模式。读取文件后,可以使用read()方法来一次性读取文件的全部内容,也可以使用readline()方法逐行读取文件内容。读取完文件后,记得调用close()方法来关闭文件,释放资源。

 只读模式,二进制模式和文本模式的区别?

  • 只读模式("r"):以只读方式打开文件。如果文件不存在,则会抛出异常。
  • 二进制模式("b"):以二进制方式打开文件。在二进制模式下,文件的内容以字节流的形式进行读取和写入。适用于处理非文本文件(如图像、音频等)。
  • 文本模式("t"):以文本方式打开文件。在文本模式下,文件的内容以字符流的形式进行读取和写入。适用于处理文本文件(如txt文件)。
  • 在Python中,默认的打开文件的模式是文本模式("rt")。如果需要打开二进制文件,则需要使用二进制模式("rb")。

什么是with语句? 

  • with语句是Python的一种语法结构,用于管理资源的获取和释放。它提供了一种更简洁的方式来处理文件、网络连接等需要手动关闭或释放的资源。在with语句中,我们可以通过打开资源的代码块来获取资源,然后在代码块结束后,不需要手动关闭资源,with语句会自动帮我们释放资源。例如:
    with open('file.txt', 'r') as f:# 在这个代码块中可以对文件进行读取操作data = f.read()print(data)
    # 在代码块结束后,文件会自动关闭
    
  • 在上面的例子中,打开文件的操作在with语句中进行,当代码块结束后,文件会自动关闭,不需要我们手动调用f.close()来关闭文件。使用with语句可以保证资源的正确释放,避免资源泄漏和错误。

什么是StringIO? 

  • StringIO是一个在内存中模拟文件的类,它允许我们将一个字符串当作文件来进行读写操作。通过StringIO,我们可以像操作文件一样对字符串进行读取、写入等操作。它是Python的标准库中的io模块的一部分。

什么是BytesIO? 

  • BytesIO是一个在内存中操作二进制数据的类。它可以像读写文件一样读写二进制数据,但是数据并不存储在硬盘上,而是保存在内存中。它可以用来临时存储和操作二进制数据,例如将二进制数据读取到内存中进行处理,或者将处理后的二进制数据写入到内存中。

什么是文件\目录操作?

  • 文件和目录操作指的是在计算机系统中对文件和目录进行创建、删除、复制、移动、重命名等操作的过程。这些操作可以通过操作系统提供的命令行工具、图形用户界面、编程语言的文件和目录操作函数来实现。
  • 文件和目录操作是计算机系统中常见的基本操作之一,通过对文件和目录的操作,可以对文件系统进行管理和组织,方便用户存储、访问和管理文件和数据。

怎么使用python操作文件\目录? 

在Python中,你可以使用os模块来操作文件和目录。

下面是一些常见的操作:

  1. 获取当前工作目录:

    import oscwd = os.getcwd()
    print(cwd)
    
  2. 创建目录:

    import osos.mkdir("新目录")
    
  3. 删除目录:

    import osos.rmdir("目录")
    
  4. 获取目录下的文件列表:

    import osfiles = os.listdir("目录")
    print(files)
    
  5. 判断文件是否存在:

    import osexists = os.path.exists("文件路径")
    print(exists)
    
  6. 重命名文件:

    import osos.rename("旧文件名", "新文件名")
    
  7. 删除文件:

    import osos.remove("文件名")
    
  8. 复制文件:

    import shutilshutil.copy2("源文件", "目标文件")
    
  9. 查看当前目录的绝对路径:
    import osos.path.abspath('.')
  10. 在某个目录下创建一个新目录:
    import osos.path.join('/Users/michael', 'testdir')
  • 注意:在使用这些函数之前,你需要正确导入相应的模块(如import osimport shutil)。这只是一些常见的操作示例,os模块和shutil模块提供了更多的功能来操作文件和目录。你可以查看官方文档来获取更多的信息。

python怎么查看操作系统类型? 

  • 可以使用platform模块来查看操作系统类型:
    import platform# 获取操作系统名称
    print(platform.system())  # 输出:Windows(或Linux、Darwin等)# 获取操作系统版本
    print(platform.release())  # 输出:10.0.19041(或其他版本号)
    
  • platform.system()函数返回操作系统的名称,如WindowsLinuxDarwin等。
  • platform.release()函数返回操作系统的版本号。
  • 具体的返回值可能因操作系统而异。

python怎么查看环境变量? 

在Python中,可以使用os模块来查看环境变量。

下面是一些常用的方法:

  • 使用os.environ属性来获取当前系统的所有环境变量,返回一个字典。
  • 使用os.getenv()函数来获取指定的环境变量的值,返回一个字符串,如果环境变量不存在,则返回None或者指定的默认值。
    import os# 获取所有环境变量
    env_vars = os.environ
    print(env_vars)# 获取指定环境变量的值
    value = os.getenv('PATH')
    print(value)# 获取指定环境变量的值,如果不存在则返回默认值
    value = os.getenv('MY_ENV_VAR', 'default_value')
    print(value)
    

什么叫序列化?

  • 序列化是将对象转化为可以存储或传输的格式的过程。在序列化过程中,对象的状态被保存为一系列的字节流,可以通过网络传输或持久化到磁盘上。序列化后的对象可以被反序列化为原始对象的副本,以便恢复对象的状态。序列化在数据存储、数据传输、远程调用等场景中广泛使用。

python怎么实现序列化和反序列化? 

  • 在Python中,可以使用pickle模块来实现序列化和反序列化。
  • 序列化是将Python对象转换为字节流的过程,可以使用pickle.dump()方法将对象序列化到文件中,或使用pickle.dumps()方法将对象序列化为字节流
  • 反序列化是将字节流转换为Python对象的过程,可以使用pickle.load()方法从文件中反序列化对象,或使用pickle.loads()方法从字节流中反序列化对象。
    import pickle# 定义一个示例对象
    data = {'name': 'John', 'age': 30, 'city': 'New York'}# 序列化对象到文件
    with open('data.pkl', 'wb') as f:pickle.dump(data, f)# 反序列化对象
    with open('data.pkl', 'rb') as f:loaded_data = pickle.load(f)print(loaded_data)
    
  • 在上述代码中,首先定义了一个示例对象data,然后使用pickle.dump()方法将对象序列化到文件"data.pkl"中。接着,使用pickle.load()方法从文件中反序列化对象,将其赋值给变量loaded_data。最后,打印loaded_data,输出反序列化后的对象。
  • 注意:pickle模块序列化的字节流是不可读的,不适合跨语言传输。如果需要跨语言传输,可以考虑使用JSON或其他通用的序列化格式。

序列化和保存为json文件或者csv文件的区别? 

  • 序列化是将对象转化为字节流的过程,可以将对象保存在文件或进行网络传输。而保存为JSON文件是将对象转化为JSON格式的字符串,然后保存到文件中。序列化可以保存对象的所有属性和方法,而JSON文件只能保存对象的属性,方法会被忽略。另外,JSON文件可以被多种编程语言读取和解析,而序列化的字节流只能由相同的编程语言进行反序列化。

  • 保存为json文件或者csv文件的区别主要体现在数据格式和处理方式上。

    • 数据格式:
    1. JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,使用键值对的形式表示数据,支持多种数据类型如字符串、数字、数组、对象等。
    2. CSV(Comma Separated Values)是一种纯文本格式,使用逗号分隔不同的字段,每行表示一条记录,每个字段代表一个数据元素。
    • 数据处理:
    1. JSON文件可以嵌套层次结构,适用于表示复杂的数据结构。可以使用JSON解析器将JSON文件加载到内存中,并按照键值对的方式进行数据访问和操作。
    2. CSV文件是一种扁平的、表格型的数据格式,适用于存储简单的表格数据。可以使用CSV解析器将CSV文件加载到内存中,并按照行和列的方式进行数据访问和操作。
    • 应用场景:
    1. JSON文件适用于存储和交换结构化、复杂的数据,比如配置文件、API接口的数据传输等。
    2. CSV文件适用于存储和交换简单的表格数据,比如Excel表格的导出、数据库的导入导出等。

    综上所述,选择序列化并保存为JSON文件还是CSV文件,取决于数据的结构复杂程度、处理方式和应用场景的需求。

怎么读写json文件? 

  • 在Python中,我们可以使用json模块来读写JSON文件。要从JSON文件中读取数据,我们可以使用json.load()函数来加载文件并解析JSON数据。此函数接受一个文件对象作为参数,并返回一个包含JSON数据的Python对象。
    import json# 读取JSON文件
    with open('data.json', 'r') as f:data = json.load(f)
    
  • 要将数据写入JSON文件,我们可以使用json.dump()函数。此函数接受一个Python对象和一个文件对象作为参数,并将Python对象转换为JSON数据并写入文件。
    # 写入JSON文件
    with open('output.json', 'w') as f:json.dump(data, f)
    
  • 如果要将JSON数据作为字符串进行读取或写入,可以使用json.loads()json.dumps()函数。
    # 从JSON字符串中读取数据
    data = json.loads(json_string)# 将数据写入JSON字符串
    json_string = json.dumps(data)
    
  • 注意:在读取或写入JSON文件时,要确保文件的编码和格式与JSON数据一致。

怎么读写csv文件?  

  • 要读写CSV文件,可以使用Python内置的csv模块。
  • 读取CSV文件:
    import csv# 打开CSV文件
    with open('data.csv', 'r') as file:# 创建一个CSV读取器reader = csv.reader(file)# 读取每一行数据for row in reader:print(row)
    
  • 写入CSV文件:
    import csv# 定义数据
    data = [['Name', 'Age', 'City'],['Alice', '25', 'New York'],['Bob', '30', 'London'],['Charlie', '35', 'Tokyo']
    ]# 打开CSV文件
    with open('data.csv', 'w', newline='') as file:# 创建一个CSV写入器writer = csv.writer(file)# 写入数据for row in data:writer.writerow(row)
    
  • 在上面的例子中,data.csv是CSV文件的路径,可以根据实际情况进行修改。读取CSV文件时,使用csv.reader()函数创建一个CSV读取器,然后使用for循环遍历读取每一行数据。写入CSV文件时,使用csv.writer()函数创建一个CSV写入器,然后使用writer.writerow()方法逐行写入数据。
  • 需要注意的是,在写入CSV文件时,open()函数的第二个参数使用了'w'模式,这表示以覆盖模式打开文件。如果想要在原有数据的基础上追加数据,可以使用'a'模式打开文件。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com