预科班D12

2020.09.22星期二  预科班D12

学习内容:

一、修改文件的两种方式

1、方案一

  思路:(1)先以r形式打开源文件

        (2)将源文件内容一次性读入内存中,在内存中修改完毕

        (3)以w形式打开源文件(源文件中内容被清空)

        (4)将内存中的文件写入源文件中

with open("a.txt", mode = 'r', encoding = 'utf-8') as f:
    data = f.read()
    res = data.replace('jack', 'JACK')
with open("a.txt", mode = 'w', encoding = 'utf-8') as f1:
    f1.write(res)

2、方案二

  思路:(1)先以r形式打开源文件,再以w形式打开新的文件

     (2)每从源文件中读取一行内容就立即修改,然后将修改的内容写入新文件中

     (3)删除源文件,将新文件重命名为源文件名

import os

with open("a.txt", mode = "r", encoding = "utf-8") as src_f, \
        with open(".a.txt.swp", mode = "w", encoding = "utf-8") as dst_f:
    for line in src_l:
        res = line.replace("ccc", "CCC")
        dst_f.write(res)
os.remove("a.txt")
os.rename(".a.txt.swp", "a.txt")

 

二、文件处理

1、a模式打开文件直接在文件末尾输入

with open(r"H:\PycharmProjects\test\a.txt", mode = 'a', encoding = 'utf-8') as f:
    f.write("111\n")
    f.write("222\n")
    f.write("333\n")

with open(r"H:\PycharmProjects\test\a.txt", mode = 'a', encoding = 'ytf-8') as f:
    f.write("444\n")

2、w模式打开文件后先将源文件内容清空再输入(命令未结束前也是一直往后写)

with open(r"H:\PycharmProjects\test\a.txt", mode = 'w', encoding = "utf-8") as f:
    f.write("111\n")
    f.write("222\n")
    f.write("333\n")
with open(r
"H:\PycharmProjects\test\a.txt", mode = 'w', encoding = "utf-8") as f: f.write("444\n")

 

三、字符编码

字符==========编码==========》数字

字符《========解码===========数字

字符编码表:字符与数字的对应关系

 

ASCⅡ表:英文字符与数字的关系

      用1Bytes对应一个英文字符

GBK表:英文字符与中文字符跟数字的对应关系

      用2Bytes对应一个字符

Shift-JIS:英文字符与日文字符跟数字的对应关系

Euc-KR:英文字符与韩文字符跟数字的对应关系

utf-8:"万国字符与数字的关系"

    1Bytes=====》1个英文字符

    3Bytes=====》1个中文字符

四、处理文本文件

with open('d.txt',mode='wt',encoding='utf-8') as f:
    f.write("哈哈哈哈")

with open('d.txt', mode='rt', encoding='utf-8') as f:
    print(f.read())

五、处理非文本文件

src_file_path = input("请输入源文件路径:").strip()
dst_file_path = input("请输入目标文件路径:").strip()
src_file_path = r"%s" %src_file_path
dst_file_patn = r"%s" %dst_file_path
with open(src_file_path, mode = 'rb') as src_f, \
        open(dst_file_path, mode = 'wb') as dst_f:
    for line in scr_f:
        dst_f.write(line)

data = src_f.read()

dst_f.write(data)

六、模块

import os

import time

...

print('hello')

time.sleep(3)

print('world')

posted @ 2020-09-22 20:16  drrug  阅读(125)  评论(0编辑  收藏  举报