日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

c++读二进制文件结束的时候总会异常_python专题文件操作

發布時間:2024/10/14 python 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++读二进制文件结束的时候总会异常_python专题文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 前言

本篇文章主要對文件操作進行說明,知識追尋者創作必屬精品,讀完本篇你將獲得基礎的文件操作能力,深入理解文件操作API,基礎真的很重要,不管學什么知識,故看知識追尋者的專題系列真的很不錯。

公眾號:知識追尋者

知識追尋者(Inheriting the spirit of open source, Spreading technology knowledge;)

二 open函數介紹

2.1 open函數概覽

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

  • file 可以是給定的文本文件或者是文件字符串形式的名稱
  • mode 模式是操作文件以何種方式打開,比如讀,寫模式,讀取為二進制等;
  • buffering 是緩存機制(可選參數),設置為0為關閉緩存;設置為1表示行緩存,必須是在文本模式下執行;設置值 大于1 表示固定值的塊緩存;不給定參數,系統會設置默認緩存,通常二進制文件是固定大小的塊緩存,大小為4096或者8192;
  • encoding 表示設置編碼或者解碼,默認的編碼解碼是跟隨平臺,必須是文本模式下可執行;用戶可以自定義,
  • errors 可選操作,表示指定如何處理編碼異常;如果設置為ignore,可能會造成數據丟失;
  • newline 表示對換行的具體操作,比如 'n' , 'r' , 'nr',必須在文本模式下進行;
  • closefd 如果設置會False 當文件關閉時,文件的描述會一直打開,造成內存泄漏;通常會在open方法前面加with解決此類問題,否則需要調用close()方法關閉句柄;
  • 2.2 mode 模式介紹

    基礎模式如下,在不沖突的情況下可以對文件的模式進行自由組合,比如 wb表示以二進制文件形式打開文件進行寫操作;

    2.3 文件方法介紹

    三 讀文件操作

    3.1 準備工作

    在工程目錄下的base目錄文件夾下創建一個dir文件夾,專門用于存儲文件;創建一個zszxz.txt 文件 內容如下

    我以星辰送大海 我以盞杯敬明月

    3.2 讀取整個文件

  • 指定文件路徑path
  • 指定模式r 為讀操作
  • 指定編碼格式為utf-8
  • 調用read()方法
  • path = "dirs/zszxz.txt" with open(path, 'r', encoding='UTF-8') as file_obj:content = file_obj.read()print(content.rstrip())

    輸出結果

    我以星辰送大海 我以盞杯敬明月

    3.3讀取單行

    使用readline()方法會讀取單行,對于整個文件需要進行多次讀取;

    path = "dirs/zszxz.txt" with open(path, 'r', encoding='UTF-8') as file_obj:content_1 = file_obj.readline()print(content_1.rstrip())content_2 = file_obj.readline()print(content_2.rstrip())

    輸出結果

    我以星辰送大海 我以盞杯敬明月

    3.3 多行讀取

  • 使用readlines()方法返回一個列表
  • 使用循環遍歷讀取
  • path = "dirs/zszxz.txt" with open(path, 'r', encoding='UTF-8') as file_obj:lines = file_obj.readlines()for line in lines:print(line.rstrip())

    輸出結果

    我以星辰送大海 我以盞杯敬明月

    3.4 按行讀取

    直接對文件進行迭代,能簡化代碼,提高效率;

    path = "dirs/zszxz.txt" with open(path, 'r', encoding='UTF-8') as file_obj:for line in file_obj:print(line.rstrip())

    四 寫操作

  • path 指定文件路徑
  • mode 模式為w 表示寫入數據
  • 執行write()方法
  • 返回count為寫如的字符數
  • 寫入全部數據

    # -*- coding: utf-8 -*-path = "C:mydatageneratorzszxz.txt" with open(path,'w',encoding='UTF-8') as file_obj:count = file_obj.write("happily reading the article of zszxz")print(count)

    返回結果如下,說明寫入了36個字符;

    36

    五 獲取當前位置

  • path 指定文件路徑
  • mode 模式為 r表示讀
  • 調用readline()方法 表示讀取行
  • 調用tell()方法獲取讀取文件當前位置
  • path = "dirs/zszxz.txt" with open(path, 'r', encoding='UTF-8') as file_obj:line = file_obj.readline()position = file_obj.tell()print(position)print(line.rstrip())

    輸出結果

    23 我以星辰送大海 與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的c++读二进制文件结束的时候总会异常_python专题文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。