Python文件操作與輸入輸出:從基礎到高級應用

文章目錄

  • 🍀引言
  • 🍀文件操作基礎
  • 🍀上下文管理器與文件自動關閉
  • 🍀文件的迭代與逐行讀取
  • 🍀文件的其他常見操作
  • 🍀輸入輸出基礎
  • 🍀 文件輸入輸出
  • 🍀格式化輸出
  • 🍀高級文件操作
  • 🍀學生管理系統案例
  • 🍀結語

🍀引言

Python作為一門功能強大且易于學習的編程語言,在文件操作和輸入輸出方面提供了豐富的功能和工具。本文將從基礎知識開始,逐步深入探討Python中的文件操作和輸入輸出技術,幫助讀者在編程過程中更好地利用這些功能。


🍀文件操作基礎

在Python中,文件操作是一項重要的任務。我們首先要了解如何打開、讀取和寫入文件。

  • 打開文件:
    使用open()函數可以打開一個文件,并返回一個文件對象。你可以指定文件路徑、文件名以及打開模式(讀取、寫入等)。
file_path = 'example.txt'
file = open(file_path, 'r')  # 以只讀模式打開文件
  • 讀取文件內容:
    通過文件對象的read()方法可以讀取文件的內容。你可以一次性讀取整個文件,也可以逐行讀取。
content = file.read()  # 讀取整個文件內容
  • 寫入文件內容
    使用文件對象的write()方法可以將數據寫入文件。需要注意的是,寫入操作默認會覆蓋文件原有內容,如果要追加內容,可以使用追加模式。
output_file = open('output.txt', 'w')  # 以寫入模式打開文件
output_file.write("Hello, world!")

🍀上下文管理器與文件自動關閉

Python引入了上下文管理器,讓文件操作更加便捷。通過with語句打開文件,當代碼塊執行完畢后,文件會自動關閉,避免了手動關閉文件可能引發的問題。

with open('example.txt', 'r') as file:content = file.read()
# 文件會在代碼塊執行完畢后自動關閉

🍀文件的迭代與逐行讀取

Python允許你將文件對象當作迭代器來使用,逐行讀取文件內容

with open('example.txt', 'r') as file:for line in file:print(line)

🍀文件的其他常見操作

除了基本的讀寫操作,還有其他有用的文件操作方法,比如獲取文件大小、判斷文件是否存在等。

import osfile_size = os.path.getsize('example.txt')  # 獲取文件大小
file_exists = os.path.exists('example.txt')  # 判斷文件是否存在

🍀輸入輸出基礎

在Python中,通過標準輸入和標準輸出可以進行基本的輸入和輸出操作。

  • 標準輸入:
    使用input()函數可以從標準輸入獲取用戶輸入的內容。
name = input("請輸入你的名字:")
print("你好,", name)
  • 標準輸出:
    使用print()函數可以將內容輸出到標準輸出。
print("Hello, world!")

🍀 文件輸入輸出

with open('output.txt', 'w') as file:file.write("Hello, world!")

🍀格式化輸出

使用格式化字符串,你可以將變量的值插入到輸出文本中。

age = 25
print("我今年{}歲。".format(age))

🍀高級文件操作

Python的標準庫和第三方庫提供了更多高級的文件操作功能,例如處理CSV、JSON、XML等格式的文件,以及在網絡上下載文件等

🍀學生管理系統案例

功能要求:

添加學生姓名和成績。
顯示所有學生的姓名和成績。
將學生信息保存到文件。
從文件中加載學生信息。
class Student:def __init__(self, name, score):self.name = nameself.score = scoredef __str__(self):return f"姓名: {self.name}, 成績: {self.score}"def add_student(students):name = input("請輸入學生姓名: ")score = float(input("請輸入學生成績: "))student = Student(name, score)students.append(student)print("學生信息已添加。")def display_students(students):print("學生信息:")for student in students:print(student)def save_to_file(students, file_path):with open(file_path, 'w') as file:for student in students:file.write(f"{student.name},{student.score}\n")print("學生信息已保存。")def load_from_file(file_path):students = []try:with open(file_path, 'r') as file:for line in file:name, score = line.strip().split(',')students.append(Student(name, float(score)))except FileNotFoundError:passreturn studentsdef main():students = load_from_file('students.txt')while True:print("\n學生成績管理系統")print("1. 添加學生信息")print("2. 顯示學生信息")print("3. 保存學生信息到文件")print("4. 退出")choice = input("請選擇操作:")if choice == '1':add_student(students)elif choice == '2':display_students(students)elif choice == '3':save_to_file(students, 'students.txt')elif choice == '4':print("感謝使用學生成績管理系統!")breakelse:print("無效的選擇,請重新輸入。")if __name__ == "__main__":main()

運行結果如下
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

這個案例實現了一個簡單的學生成績管理系統,你可以根據提示選擇不同的操作。通過輸入和輸出,你可以添加學生信息、顯示學生信息、保存學生信息到文件,并從文件加載學生信息。這個案例綜合應用了前面介紹的文件操作、輸入輸出以及類的概念。
在運行案例時,你可以輸入學生的姓名和成績,然后選擇顯示學生信息、保存信息到文件或退出系統。學生信息會被保存到文件中,下次運行程序時可以加載之前保存的信息。
通過這個案例,你可以更好地理解文件操作和輸入輸出在實際項目中的應用,同時也加深對類和對象的理解。你可以根據這個案例的基礎上進行拓展,添加更多功能,如成績統計、成績排序等。

🍀結語

文件操作和輸入輸出是Python編程中不可或缺的一部分。本文介紹了文件操作的基本方法,以及如何使用上下文管理器來確保文件的正確關閉。此外,我們還探討了輸入輸出的基本方法和格式化輸出。通過掌握這些基礎知識,你將能夠更自如地處理文件和數據輸入輸出,為你的Python編程之旅奠定堅實的基礎。

無論是處理文本文件、日志文件,還是與用戶進行交互,Python的文件操作和輸入輸出功能都將伴隨著你的編程旅程,為你提供強大的支持。在掌握了這些基礎之后,你還可以深入學習更多高級的文件處理技術,為你的項目開發帶來更多可能性。

請添加圖片描述

挑戰與創造都是很痛苦的,但是很充實。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39774.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39774.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39774.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【BASH】回顧與知識點梳理(二十七)

【BASH】回顧與知識點梳理 二十七 二十七. 磁盤配額(Quota)27.1 磁盤配額 (Quota) 的應用與實作什么是 QuotaQuota 的一般用途Quota 的使用限制Quota 的規范設定項目 27.2 一個 XFS 文件系統的 Quota 實作范例實作 Quota 流程:設定賬號實作 Quota 流程-1&#xff1a…

jenkins gitlab 安裝

目錄 一 準備安裝環境 二 安裝gitlab軟件 三 配置gitlab 四 重新加載配置啟動gitlab 五 修改密碼 五 創建用戶組 一 準備安裝環境 sudo yum update sudo yum install -y curl policycoreutils-python openssh-server安裝 Postfix 郵件服務器,以便 Git…

qt事件系統源碼-----定時器

qt定時器的使用一般有以下幾種方式: 1、直接使用QTimer對象,綁定定時器的timeout信號; 2、使用QTimer的靜態方法singleshot方法,產生一個一次性的定時事件 3、在QObject子類中,調用startTimer方法,產生定…

矢量繪圖UI設計軟件Sketch mac中文版軟件說明

Sketch mac是一款適用于 UI/UX 設計、網頁設計、圖標制作等領域的矢量繪圖軟件。 Sketch mac軟件特點 1. 簡單易用的界面設計:Sketch 的用戶界面簡潔明了,使得用戶可以輕松上手操作,不需要復雜的學習過程。 2. 強大的矢量繪圖功能&#xff1a…

flinksql實時統計程序背壓延遲優化

問題: flinkcdcflinksql做實時讀取sls日志和實時統計業務指標,今天發現程序背壓了,業務延遲了6個小時。解決辦法: 1、資源優化 作業并發大時:在作業的高級配置的資源配置中,增加JobManager的資源&#xf…

香港服務器三網直連內地線路什么意思?好用嗎?

?  三網直連內地是指香港服務器可以直接連接中國內地的電信、聯通和移動三大運營商網絡,避免了中間網絡干線的支持。這樣可以實現直接、快速、穩定的網絡訪問,提高用戶對網絡訪問的效率,減少網絡訪問問題和擁堵的現象。 香港服務器直連內地…

XSS 跨站腳本攻擊

XSS(DOM) XSS 又稱CSS(Cross Site Scripting)或跨站腳本攻擊,攻擊者在網頁中插入由JavaScript編寫的惡意代碼,當用戶瀏覽被嵌入惡意代碼的網頁時,惡意代碼將會在用戶的瀏覽器上執行。 XSS攻擊可分為三種:分別為反射型(Reflected…

線程|線程的使用、四種實現方式

1.線程的實現方式 1.用戶級線程 開銷小,用戶空間就可以創建多個。缺點是:內核無法感知用戶級多個線程的存在,把其當作只有一個線程,所以只會提供一個處理器。 2.內核級線程 相對于用戶級開銷稍微大一點,可以利用多…

Unity C# 之 Azure 微軟SSML語音合成TTS流式獲取音頻數據以及表情嘴型 Animation 的簡單整理

Unity C# 之 Azure 微軟SSML語音合成TTS流式獲取音頻數據以及表情嘴型 Animation 的簡單整理 目錄 Unity C# 之 Azure 微軟SSML語音合成TTS流式獲取音頻數據以及表情嘴型 Animation 的簡單整理 一、簡單介紹 二、實現原理 三、注意事項 四、實現步驟 五、關鍵代碼 一、簡…

01- vdom 和模板編譯源碼

組件渲染的過程 template --> ast --> render --> vDom --> 真實的Dom --> 頁面 Runtime-Compiler和Runtime-Only的區別 - 簡書 編譯步驟 模板編譯是Vue中比較核心的一部分。關于 Vue 編譯原理這塊的整體邏輯主要分三個部分,也可以說是分三步&am…

《vue3實戰》運用radio單選按鈕或Checkbox復選框實現單選多選的試卷制作

文章目錄 目錄 系列文章目錄 1.《Vue3實戰》使用axios獲取文件數據以及走馬燈Element plus的運用 2.《Vue3實戰》用路由實現跳轉登錄、退出登錄以及路由全局守護 3.《vue3實戰》運用Checkbox復選框實現單選多選的試卷展現(本文) 文章目錄 前言 radio是什…

Java中List排序的4種方法

開發過程中經常會遇到讀取文件內容的情況,需要判斷文件是否為文本文件,及文件編碼格式,防止無法讀取內容或亂碼出現情況。 我們可以通過 java.io.File 類包找出文件是目錄還是常規文件。java.io.File 類包含兩種方法,它們分別是&…

TCP服務器—實現數據通信

目錄 前言 1.接口介紹 2.編寫服務器 3.編寫客戶端 4.編譯鏈接 5.測試 6.總結 前言 今天我們要介紹的是使用TCP協議實現數據通信,相比于之前寫的UDP服務器實現數據信,在主體邏輯上并沒有差別。客戶端向服務器發送信息,服務器接受信息并回…

JavaEE初階:多線程 - Thread 類的基本用法

上次我們了解了多線程的五種創建方法,今天來學習Thread的基本用法。 目錄 run和start Thread常見的構造方法 Thread的幾個常見屬性 后臺線程 是否存活 線程終止 1.使用標志位 2.使用Thread自帶的標志 等待線程 run和start 首先需要理解Thread的run和star…

JavaWeb-Listener監聽器

目錄 監聽器Listener 1.功能 2.監聽器分類 3.監聽器的配置 4.ServletContext監聽 5.HttpSession監聽 6.ServletRequest監聽 監聽器Listener 1.功能 用于監聽域對象ServletContext、HttpSession和ServletRequest的創建,與銷毀事件監聽一個對象的事件&#x…

Python源碼05:使用Pyecharts畫詞云圖圖

**Pyecharts是一個用于生成 Echarts 圖表的 Python 庫。Echarts 是一個基于 JavaScript 的數據可視化庫,提供了豐富的圖表類型和交互功能。**通過 Pyecharts,你可以使用 Python 代碼生成各種類型的 Echarts 圖表,例如折線圖、柱狀圖、餅圖、散…

Glide 的超時控制相關處理

作者:newki 前言 Glide 相信大家都不陌生,各種源碼分析,使用介紹大家應該都是爛熟于心。但是設置 Glide 的超時問題大家遇到過沒有。 我遇到了,并且掉坑里了,情況是這樣的。 調用接口從網絡拉取用戶頭像&#xff0c…

3.微服務概述

1.大型網絡架構變遷 SOA與微服務最大的差別就是服務拆分的細度,目前大多數微服務實際上是SOA架構,真正的微服務應該是一個接口對應一個服務器,開發速度快、成本高; 微服務SOA能拆分的就拆分是整體的,服務能放一起的都…

自動駕駛HMI產品技術方案

版本變更 序號 日期 變更內容 編制人 審核人 文檔版本 1 2 1.

【計算機網絡】13、ARP 包:廣播自己的 mac 地址和 ip

機器啟動時,會向外廣播自己的 mac 地址和 ip 地址,這個即稱為 arp 協議。范圍是未經過路由器的部分,如下圖的藍色部分,范圍內的設備都會在本地記錄 mac 和 ip 的綁定信息,若有重復則覆蓋更新(例如先收到 ma…