1. 程式人生 > >檔案基本操作(一)

檔案基本操作(一)

一、

1 什麼是檔案?

    檔案是作業系統為使用者或應用程式提供的一個讀寫硬碟的虛擬單位
    檔案的操作核心就是:讀、寫
    即我們只需要對於進行讀寫操作,就是對作業系統發起請求,然後由作業系統將使用者或者應用程式
    對檔案的讀寫操作轉換成具體的硬碟指令(比如控制碟片轉動,控制機械手臂移動來讀寫資料)


2 為什麼要有檔案?
    因為記憶體無法永久儲存資料,但凡我們想要永久儲存資料都需要儲存到硬碟中,
    而操作檔案就可以實現對硬體的操作


3 如何用檔案

name='egon'
pwd='123'
#把記憶體中的資料儲存到硬碟中去



把硬碟中的資料讀到記憶體中

f=open(r'E:\python練習\day08\a.txt',mode='r',encoding='utf-8') # 向作業系統發起請求,要求作業系統開啟檔案,

佔用作業系統的資源

#開頭中的r即rawstring(原生字串)
#或者加\取消轉譯  f=open(E:\\python練習\\day08\\a.txt',mode='r',encoding='utf-8')

    f1=10
    data=f.read() # 向作業系統打開發起讀請求,會被作業系統轉成具體的硬碟操作,將內容由硬碟讀入記憶體
        print(data)
    f.close() #向作業系統發起請求,要求作業系統關閉檔案,回收系統資源

總結:

1、開啟檔案
2、讀寫

3、關閉

二、

1、絕對路徑:從碟符(C:\\ E:\\ D:\\)開始寫一個完整的路徑
2、相對路徑:相對於當前執行檔案所在的資料夾開始找

                       如:f=open(r'a\a.txt')

控制讀寫檔案內容的結果有兩種:t模式(text),b模型(bytes)
注意:
1、t與b這兩種模式均不能單獨使用,都需要與r/w/a之一連用
2、預設的內容格式是t
3、只有文字檔案才能用t模式,也只有文字檔案才有字元編碼的概念

操作檔案的基礎模式有三種:
1、r,預設的
2、w
3、a
綜上,預設是rt

r:read,只讀模式
1、只能讀,不能寫
2、在檔案不存在時,會報錯,在檔案存在的時候會將檔案指標移動到開頭

            f=open(r'a.txt',mode='rt',encoding='utf-8')
    data1=f.read()
    print('第一次:\n'+data1)
    print(type(data1))

    data2=f.read()
    print('第二次:\n'+data2)
    f.close()

    f=open(r'a.txt',mode='rt',encoding='utf-8')
    # print(f.readable())
    print(f.readline(),end='')

    lines=f.readlines()
    print(lines)
    f.close()

w:只寫模式
1、只能寫,不能讀
2、在檔案不存在時會建立空檔案,在檔案存在的時候會將檔案內容清空
    f=open(r'b.txt',mode='wt',encoding='utf-8')
    # print(f.readable())
    f.write('你好啊我的天\n你好哇我的地\n啊啊啊啊啊啊\n')
    f.write('2333333\n')
    f.write('520')

    lines=['你好啊我的天\n你好哇我的地\n啊啊啊啊啊啊\n']
    # for line in lines:
    #     f.write(line)
    f.writelines(lines)   writelines可以直接寫出列表裡面的內容
    f.close()

    a:只追加寫模式
    1、只能寫,不能讀
    2、在檔案不存在時會建立空檔案,在檔案存在的時候會將指標移動到檔案末尾

    f=open('a.txt',mode='at',encoding='utf-8')
    f.write('\n5555\n6666\n')
    f.writelines(['777\n','888\n','999\n'])
    f.close()

    b:二進位制模式(bytes)
    注意:
    1、一定不能指定字元編碼,只有t模式才與字元編碼有關
    2、b是二進位制模式,是一種通用的檔案讀取模式,因為所有的檔案在硬碟中都是以二進位制形式存放的

    f=open('egon.jpg','rb')
    data=f.read()
    print(data)
    f.close()

    f=open('oldsiji.mp4','rb')
    data=f.read()
    f.close()          #需佔用記憶體太大了,不能執行

    f=open('oldsiji.mp4','wb')
    f.write(data)
    f.close()

迴圈讀
    f=open('b.txt','rt',encoding='utf-8')
    for line in f:
        print(line)
    f.close()

    f=open('E:\\二期視訊\\day08\\day08\\oldsiji.mp4','rb')
    for line in f:
        print(line)
    f.close()

    f=open('b.txt','rb')
    for line in f:
        print(line)
    f.close()

    f=open('b.txt','wb')
    f.write('你好啊'.encode('utf-8'))
    #wb只能寫成二進位制型別,再用utf-8編碼一下
    f.close()

    f=open('b.txt','ab')
    f.write('\n大家好,我是egon'.encode('utf-8'))
    f.close()

上下文管理

with open('b.txt','rb') as f,open('a.txt','wt',encoding='utf-8') as f1:
    #檔案的操作
    src_data=f.read()
    res=src_data.decode('utf-8')
    print(res,"\n",type(res))
    f1.write(res)

with open('a.txt','rb') as f,\
        open('j.txt','wb') as f1:
    #檔案的操作
    f1.write(f.read())

相關推薦

檔案基本操作

一、1 什麼是檔案?    檔案是作業系統為使用者或應用程式提供的一個讀寫硬碟的虛擬單位    檔案的操作核心就是:讀、寫    即我們只需要對於進行讀寫操作,就是對作業系統發起請求,然後由作業系統將使用者或者應用程式    對檔案的讀寫操作轉換成具體的硬碟指令(比如控制碟片

kubernets1.10.1--基本操作

k8s kubernets Kubectl管理工具 在node節點部署 # 設置集群項中名為kubernetes的apiserver地址與根證書 kubectl config set-cluster kubernetes --server=https://192.168.1.107:6443 --

oracle數據庫基本操作

ext pre dml arc 插入 esc update enc 相同 一、數據基本類型   1、oracle的偽列     Oracle 中偽列就像一個表列,但是它並沒有存儲在表中偽列可以從表中查詢,但不能插入、更新和刪除它們的值常用的偽列有ROWID和ROWNUM;

oracle 11g RAC 的基本操作------啟動與關閉

執行 同時 man sources monit vip nag 查看數據庫 resource 啟動RAC 手工啟動按照HAS, cluster, database的順序啟動,具體命令如下: 啟動HAS(High Availability Servi

python列表基本操作

一個 處理 move 長度 指定 排序 app 索引 處理方法 函數list 有些時候修改字符串不能像列表那樣,可以使用list來解決 list函數實際上是一個類,而不是函數。 somelist = list(‘hello‘) 字符串str1 = hello world,

JDBC資料庫基本操作

1.什麼是JDBC? 在看JDBC的概念之前先來看看什麼是資料庫驅動。 資料庫驅動中驅動的概念和平時聽到的那種驅動的概念是一樣的,比如平時購買的音效卡,網絡卡直接插到計算機上面是不能用的,必須要安裝相應的驅動程式之後才能夠使用音效卡和網絡卡,同樣道理,我們安裝好資料庫之後,我們的應用程式也是不能直接使用資

MongoDB基礎教程系列--第二篇 MongoDB基本操作

1、安裝環境 在官網上下載MongoDB的最新版本,根據自身Windows版本下載正確的MongoDB版本。下載後,雙擊32位或者64位.msi檔案,按操作提示安裝就可以了。 說明: 32 位版本的 MongoDB 只支援 2G 以下的資料庫,只適用於測試及評估。 在

Linux基本操作

文章同步更新在我的知乎專欄: 1. 使用Microstrong使用者,登入到Linux圖形介面。 2. 虛擬控制檯(允許多個使用者同時登入,或同一使用者在同一時間內多次登入,即每個控制檯就是一個登入通道) 圖形介面下:Ctrl+Alt+F1(F2~F6),其中F1是

SQL server2008基本操作

SQL server2008基本操作 目錄  1.註冊伺服器 (1)註冊一個本地伺服器S1,測試註冊是否成功,如果成功則儲存該伺服器註冊。步驟: 第1步:開啟SQL Server Management Studio視窗→“檢視” → “

C++基本操作:string

1,統計字串長度    int length();     2, 判斷是否為空    bool empty();     3, 字串的連線    string &

Linux系統常用基本操作

一、Linux命令列 [[email protected] ~]$ [[email protected] ~]# 1、user、root 當前操作的使用者; 2、@bigdata

棧的基本操作

1.棧的基本概念 棧是一種只能在一端進行插入或刪除操作的線性表。其中允許進行插入或刪除操作的一端稱為(Top),棧頂由一個稱為棧頂指標的位置指示器(其實就是一個變數,對於順序棧,就是記錄棧頂元素在陣列位置標號的一個整型變數;對於鏈式棧,就是記錄棧頂元素所在結點

ArcGIS for Android Runtime100 基本操作——圖層載入和切換

      之前我打算通過程式碼移植的方式來學習ArcGIS for Android Runtime100,博文地址是:http://blog.csdn.net/bit_kaki/article/details/7719648。但是覺得效果不太理想,因為這個版本的變化實在太

SpringBoot基本操作——環境搭建及專案建立有demo

SpringBoot2.0筆記 本文使用idea工具構建Springboot2.0+SpringMvc+Thymeleaf+SpringDataJPA+MySql+Redis專案 此demo可直接下載執行,以下為具體建立專案過程步驟說明

Mysql基礎2:SQL語句基本操作

1. DDL:庫操作、表操作和列操作等(使用的關鍵字:create、alter和drop) 1.1  庫操作 基本語法:create database 資料庫名字 [資料庫選項] 資料庫選項:主要是用來約束資料庫,可分為兩項: 1)字符集的設定:charset或者

mongoose的基本操作

MongoDB是一個開源的NoSQL資料庫,相比MySQL那樣的關係型資料庫,它更顯得輕巧、靈活,非常適合在資料規模很大、事務性不強的場合下使用。同時它也是一個物件資料庫,沒有表、行等概念,也沒有固定的模式和結構,所有的資料以文件的形式儲存(文件,就是一個關聯陣

串的性質和基本操作

串的概念 什麼是串呢? 串(String):由零個或多個字元組成的有限序列。記為:s=’a1a2…an’(n≥0) s為串名, ’a1a2…an’為串值,n為串的長度。

HTML檔案基本標記-、、

關於HTML檔案head、title、meta標記的使用 <!DOCTYPE html> <html> <head> <!-- HTML使用http-eq

thinkphp5.0 資料庫基本操作

連結資料庫 一共有三種模式,一般第一種就夠了 第一種直接配置application裡面的database.php檔案 // 伺服器地址 'hostname' => '1

Python影象處理的基本操作

1.安裝PIL:Python 影象處理庫 2.基本操作 利用PIL中的函式,我們可以從大多數影象格式的檔案中讀取資料,然後寫入最常見的影象格式檔案中。PIL中最重要的模組為Image。要讀取一幅影