首页 > 编程语言 >如何使用 Python 进行文件读写操作?

如何使用 Python 进行文件读写操作?

时间:2025-01-21 17:09:33浏览次数:1  
标签:文件 读取 读写操作 Python data file csv open

大家好,我是 V 哥。今天的内容来介绍 Python 中进行文件读写操作的方法,这在学习 Python 时是必不可少的技术点,希望可以帮助到正在学习 python的小伙伴。

以下是 Python 中进行文件读写操作的基本方法:

一、文件读取

# 打开文件
with open('example.txt', 'r') as file:
    # 读取文件的全部内容
    content = file.read()
    print(content)

    # 将文件指针重置到文件开头
    file.seek(0)
    # 逐行读取文件内容
    lines = file.readlines()
    for line in lines:
        print(line.strip())  # 去除行末的换行符

    # 将文件指针重置到文件开头
    file.seek(0)
    # 逐行读取文件内容的另一种方式
    for line in file:
        print(line.strip())

代码解释

  • open('example.txt', 'r'):以只读模式 r 打开名为 example.txt 的文件。
  • with 语句:确保文件在使用完毕后自动关闭,避免资源泄漏。
  • file.read():读取文件的全部内容。
  • file.seek(0):将文件指针重置到文件开头,以便重新读取。
  • file.readlines():将文件内容按行读取,并存储在一个列表中,每一行是列表的一个元素。
  • for line in file:逐行读取文件内容,file 对象是可迭代的,每次迭代返回一行。

二、文件写入

# 打开文件进行写入
with open('output.txt', 'w') as file:
    # 写入内容
    file.write("Hello, World!\n")
    file.write("This is a new line.")

代码解释

  • open('output.txt', 'w'):以写入模式 w 打开文件,如果文件不存在,会创建文件;如果文件存在,会清空原文件内容。
  • file.write():将指定内容写入文件,不会自动添加换行符,若需要换行,需手动添加 \n

三、文件追加

# 打开文件进行追加
with open('output.txt', 'a') as file:
    # 追加内容
    file.write("\nThis is an appended line.")

代码解释

  • open('output.txt', 'a'):以追加模式 a 打开文件,在文件末尾添加新内容,不会覆盖原文件内容。

四、文件读写的二进制模式

# 以二进制模式读取文件
with open('example.bin', 'rb') as file:
    binary_data = file.read()
    print(binary_data)

# 以二进制模式写入文件
with open('output.bin', 'wb') as file:
    binary_data = b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64'  # 二进制数据
    file.write(binary_data)

代码解释

  • open('example.bin', 'rb'):以二进制只读模式 rb 打开文件。
  • open('output.bin', 'wb'):以二进制写入模式 wb 打开文件。
  • b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64':表示二进制数据,使用 b 前缀。

五、使用 json 模块读写 JSON 文件

import json

# 写入 JSON 数据
data = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.json', 'w') as file:
    json.dump(data, file)

# 读取 JSON 数据
with open('data.json', 'r') as file:
    loaded_data = json.load(file)
    print(loaded_data)

代码解释

  • json.dump(data, file):将 Python 对象 data 序列化为 JSON 格式并写入文件。
  • json.load(file):从文件中读取 JSON 数据并解析为 Python 对象。

六、使用 csv 模块读写 CSV 文件

import csv

# 写入 CSV 数据
data = [['Name', 'Age', 'City'], ['John', 30, 'New York'], ['Jane', 25, 'Chicago']]
with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

# 读取 CSV 数据
with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

代码解释

  • csv.writer(file):创建一个 CSV 写入对象,将数据列表写入文件。
  • writer.writerows(data):将数据列表中的每一行写入文件。
  • csv.reader(file):创建一个 CSV 读取对象,逐行读取文件。

七、使用 pandas 模块读写文件(需要安装 pandas 库)

import pandas as pd

# 写入数据到 CSV 文件
data = {'Name': ['John', 'Jane'], 'Age': [30, 25], 'City': ['New York', 'Chicago']}
df = pd.DataFrame(data)
df.to_csv('data_pandas.csv', index=False)

# 读取 CSV 文件
df_read = pd.read_csv('data_pandas.csv')
print(df_read)

代码解释

  • pd.DataFrame(data):将字典数据转换为 pandasDataFrame 对象。
  • df.to_csv('data_pandas.csv', index=False):将 DataFrame 对象存储为 CSV 文件,不保存索引。
  • pd.read_csv('data_pandas.csv'):读取 CSV 文件为 DataFrame 对象。

八、使用 pickle 模块进行对象序列化和反序列化

import pickle

# 序列化对象
data = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.pkl', 'wb') as file:
    pickle.dump(data, file)

# 反序列化对象
with open('data.pkl', 'rb') as file:
    loaded_data = pickle.load(file)
    print(loaded_data)

代码解释

  • pickle.dump(data, file):将 Python 对象 data 序列化为二进制数据并写入文件。
  • pickle.load(file):从文件中读取二进制数据并反序列化为 Python 对象。

以上是 Python 中进行文件读写操作的常用方法,你可以根据不同的文件类型和使用场景,选择合适的方法进行操作。

最后

根据文件类型和操作需求,可以灵活使用内置的 open 函数及相关模块,如 json、csv、pandas 和 pickle 等,同时利用 with 语句确保文件的正确打开和关闭。你 Get 到了么,欢迎关注威哥爱编程,全栈路上我们并肩前行。

标签:文件,读取,读写操作,Python,data,file,csv,open
From: https://www.cnblogs.com/wgjava/p/18683858

相关文章

  • Python教程1(新手绝对看得懂)
    其实很多人不太能够清楚理解一些基础知识原理,这也是我做这个的初衷。相信大家跟着我一定会有进步的,加油下一个py大佬就是你。   大家好我们在学Python的时候先带大家来了解一下Python1.Python基本语法我们先从最基本的开始哦!Python的语法非常简洁,每一行代码就像一个......
  • labelme标注的文件去按面积除大颗粒或者小颗粒
    去除大颗粒脚本点击查看代码importcv2importnumpyasnpimportjsonimportosdeflist_jsons(folder_path):forfilenameinos.listdir(folder_path):iffilename.endswith(('.json',)):yieldos.path.join(folder_path,filename)def......
  • RTX5 | 配置文件RTX_Config.h讲解
    RTX_Congig.h包含以下内容:SystemConfiguration(非常重要)ThreadConfiguration(非常重要)TimerConfiguration(简单)EventFlagsConfiguration(简单)MutexConfiguration(简单)SemaphoreConfiguration(简单)MemoryPoolConfiguration(简单)EventRecordConfiguration(跟RTX5内......
  • js条件判断的类python海象写法
    判断里面赋值就OK啦varss="higooh"constreg=/\w{2}/gconstii=ss.matchAll(reg)while(_=ii.next()){if(_.done)breakconsole.log(_.value,_.done)ss=ss.replace(_.value[0],"xx")}//console.log(_)console.log(......
  • 我的 Python 学习之旅:从入门到实践
    在当今数字化时代,编程语言成为了开启无数可能的钥匙,而Python以其简洁易读、功能强大的特性吸引了众多学习者。我也踏上了这条学习Python的奇妙旅程,下面就来分享一下我的学习过程。一、学习动机的萌芽最初接触Python,是听闻它在数据科学、人工智能、自动化脚本等多个领域......
  • python3安装crypto出错及解决方法
    问题由来:想通过python去实现RSA加密算法时,说需要安装pycrypto,就去进行pip安装了pipinstallpycrypto错误信息如下error:MicrosoftVisualC++14.0isrequired.Getitwith"MicrosoftVisualC++Build经过网上查询信息,才知道这个库以及不再更新了,所以安装的时候会出一些错,......
  • 一个简单的PHP单文件路由类示例
    <?phpclassRouter{protected$routes=array();protected$basePath;publicfunction__construct($basePath=null){if($basePath){$this->basePath=rtrim($basePath,'/');}else{......
  • Python 中的 `selectors`:构建高效的 I/O 复用程序
    在现代编程中,高效地处理I/O操作是构建高性能应用程序的关键。无论是网络服务器、多任务文件处理还是实时数据流处理,都需要一种机制来同时监控多个I/O源,并在它们准备好时高效地处理数据。Python的selectors模块正是为了解决这一问题而设计的。它提供了一种高级的I/O......
  • python特别艺术篇:pygame带你放烟花!
    前言大家好呀,我是超级BOBO仔距离过年还有1周时间,想不想在大年三十和你最近心心念念的Python做一个烟花梦?来吧,这一章我就教大家来做一个代码代码。。。不难,而且“一点”“都不长”importpygameimportrandomimportmath#初始化Pygamepygame.init()#设置屏幕......
  • 识别两个表格文件,根据手机号进行匹配相同行并按照需要字段输出
    python代码#-*-coding:utf-8-*-#encoding:utf-8fromflaskimportFlask,render_template,request,send_file,jsonifyimportos,requestsimportpandasaspdfromdatetimeimportdatetime,timedeltaimporttime,jsonfromlogimportloggingimportthreadi......