1. 程式人生 > >Python IO-檔案讀寫

Python IO-檔案讀寫

檔案File操作流程:

1.開啟檔案:建立程式與檔案的聯絡  

      語法:file_obj = open(filename, mode)

      filename:     

                 原字串 r’c:\temp\text.txt’     

                 轉義字串 ‘c:\\temp\\text.txt’  

      mode   

                   r   只讀方式     

                   w  開啟檔案只寫入   

                   a  開啟一個檔案用於追加     

                    +  r+,w+讀寫     

                    b   二進位制   

       讀方式     

       寫方式

2.讀寫檔案                

        read readline readlines     

        write writelines

 3.關閉檔案   

         file_obj.close()

例項

#----檔案讀寫
#1.開啟檔案(設定模式)
# file_1 = open('day9.py', 'r', encoding='utf8')#讀模式 r
file_name = 'filedemo\\2.txt'
file_2 = open(file_name, 'w', encoding='utf8')#w w+ wb模式,開啟檔案第一件事就是清空
                                              #a r+ rb+ 模式開啟檔案不會清空
                                              # b,rb wb r+b w+b

#2.做讀寫操作
#----讀的方法: read(讀全部)
        #  redline(讀一行)
        #  readlines(讀全部,返回列表,列表的一個元素就是檔案的一行)
#----seek(offset='偏移量', whence='給offset指定相對位置',0:開頭 1:當前位置 2:末尾)
# print('====read()====')
# content_read = file_1.read(10)#一次讀10個位元組
# print(content_read)
# print('當前位置:',  file_1.tell())#獲取當前位置
# print(file_1.read(20))
# print('當前位置:',  file_1.tell())#獲取當前位置
# file_1.seek(2, 0)
# print('當前位置:',  file_1.tell())#獲取當前位置

# print('====readline()====')
# content_readline = file_1.readline(5)
# print('第一次:', content_readline)
# print('第二次:', file_1.readline(5))
#
# print('====readlines()====')
# content_readlines = file_1.readlines(40)
# print(content_readlines)

#----寫的方法: write
               # writelines


#----寫操作
#====write====
constant_str = '123\n' + 'abc\n' +' 你好\n'
file_2.write(constant_str)
#====weitelines====
file_2.writelines(['123', '456', '789'])
#3.關閉檔案
#file_1.close()
file_2.close()
#可讀寫模式
# r+ w+
file_name = r'filedemo/3.txt'
with open(file_name, 'rb+') as f:
    print(f.read())
   # f.write('\n中文') #b模式:1.使用encoding
                       #       2.不使用字串,TypeError: a bytes-like object is required, not 'str'
    content_str = '\n中文'
    content_str_byte = content_str.encode('utf8')
    print(content_str_byte)
    f.write(content_str_byte)
    print('位置:', f.tell())
    f.seek(0)
   # f.seek(2, 1)
    print('位置:', f.tell())
    print(f.read())

#複製圖片

file_name_ori = 1'../img1.jpg'

file_name_target = r'../ing2.jpg'

with open(file_name_ori, 'rb') as f:

       content_byte = f.read()

with open(file_name_target, 'wb') as f:

       f.write(content_byte)