目录

一、文件操作

文件的读取操作

文件的写入操作

文件操作综合案例

二、异常

异常的捕获

异常的传递性编辑

 三、模块

四、python包

怎么安装第三方包

在pycharm中安装第三方包

 五、综合案例


一、文件操作

文件的读取操作

 

python3用next每10万行读取文件 python一次读取10行_读取文件

 

# 打开文件
f = open("E:/test.txt", 'r', encoding = "UTF-8")

# 读取文件-read
#print(f"读取十个字节:{f.read(10)}")
#print(f"读取全部内容:{f.read()}")

# 读取文件-readlines
#lines = f.readlines()
#print(f"读取全部内容:{lines}")

# 读取文件-readline
"""
line1 = f.readline()
line2 = f.readline()
line3 = f.readline()
line4 = f.readline()
print(f"第1行内容为:{line1}")
print(f"第2行内容为:{line2}")
print(f"第3行内容为:{line3}")
print(f"第4行内容为:{line4}")
"""

# for循环读取文件
#for line in open("E:/test.txt", 'r', encoding="UTF-8"):
#    print(f"每一行的内容为:{line}")

# 文件的关闭
#f.close()

# 语法操作文件    执行完内容后会自动关闭文件
with open("E:/test.txt", 'r', encoding = "UTF-8") as f:
    for line in f:
        print(f"每一行的内容为:{line}")

文件的写入操作

write函数

如果文件不存在,会创建一个文件,如果文件已经存在,那么他会把文件内容清空,再写入

打开文件之后,调用写入函数后,写入的内容不会直接写入文件,而是会暂时放在一块缓存区中,直到调用了flush函数或者close关闭文件之后,这个内容才会写入文件

# 打开文件
f = open("E:/test.txt", 'w', encoding='UTF-8')

# 写入内容
f.write("Hello World!!")

# 刷新内容
f.flush()

# 关闭文件
f.close()

文件操作综合案例

将test文件中的内容写入到test02中,消费金额为200的不要

python3用next每10万行读取文件 python一次读取10行_python_02

f1 = open("E:/test.txt", 'r', encoding='UTF-8')
f2 = open("E:/test02.txt", 'w', encoding='UTF-8')

# 操作
for line in f1:
    line = line.strip()

    if line.split(",")[2] == '200': # 注意,文档中是中文输入法逗号
        continue
    else:
        f2.write(line)
        f2.write('\n')

f1.close()
f2.close()

二、异常

异常的捕获

"""
# 异常基本语法
try:
    f = open("E:/abd.txt", 'r', encoding='UTF-8')
except:
    print("出现错误,原因是文件不存在,我将以'w'的方式打开文件")
    f = open("E:/abd.txt", 'w', encoding='UTF-8')

# 捕获指定异常
try:
    print(name)
except NameError as e:
    print("出现变量未定义异常")
    print(e)    # e是异常原因    name 'name' is not defined

# 捕获多个异常
try:
    #print(name)
    1/0
except(NameError, ZeroDivisionError):
    print("出现变量未定义或者除0异常")
"""

# 异常的else 和 finally
try:
    f = open("E:/abc.txt", 'r', encoding='UTF-8')
except:
    print("出现异常")
    f = open("E:/abc.txt", 'w', encoding='UTF-8')
else:
    print("没有出现异常")
finally:
    print("finally:有没有异常都要执行")
    f.close()

异常的传递性

python3用next每10万行读取文件 python一次读取10行_开发语言_03

 异常会从func1->func2->main一层一层传递

def func1():
    print("func1开始执行")
    1/0
    print("func1执行结束")

def func2():
    print("func2开始执行")
    func1()
    print("func2执行结束")

def main():
    try:
        func2()
    except Exception as e:
        print(f"异常的原因是:{e}")

main()
"""
func2开始执行
func1开始执行
异常的原因是:division by zero
"""

 三、模块

模块就是一个python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块使用)

 模块的导入方式:

python3用next每10万行读取文件 python一次读取10行_读取文件_04

# import
# import time
# print("How are you")
# time.sleep(5)
# print("I'm fine, thank you")

# from
# from time import sleep
# print("How are you")
# sleep(5)
# print("I'm fine, thank you")

# from time import *  # *表示全部
# print("How are you")
# sleep(5)
# print("I'm fine, thank you")

# 使用as给特定功能加上别名
# import time as t
# print("How are you")
# t.sleep(5)
# print("I'm fine, thank you")

from time import sleep as s
print("How are you")
s(5)
print("I'm fine, thank you")

四、python包

怎么安装第三方包

在控制台输入

pip install 包名

这种方法是在国外的网站去安装,网速会比较慢

可以采用如下方法

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy

 结果如下:

python3用next每10万行读取文件 python一次读取10行_读取文件_05

 测试包是否安装成功

在控制台的python环境中,输入import 包名

python3用next每10万行读取文件 python一次读取10行_开发语言_06

在pycharm中安装第三方包

在pycharm中单击右下角的python版本号,在弹出来的界面点击“+”,进入如下界面,

因为这也是在国外网站下载,所以比较慢,勾选Options,输入清华大学提供的网站。

python3用next每10万行读取文件 python一次读取10行_打开文件_07

 五、综合案例

file_util.py

# 接收传入文件的路径,打印文件内容,如文件不存在则捕获异常,输出提示信息
# 通过finally关闭文件对象
def print_file_info(file_name):
    f = None
    try:
        f = open(file_name, 'r', encoding='UTF-8')
        print(f.read())
    except:
        print("文件不存在")
    finally:
        if f:
            f.close()

# 接收文件路径以及传入数据,将数据追加写入文件中
def append_to_file(file_name, data):
    f = open(file_name, 'a', encoding='UTF-8')
    f.write(data)
    f.close()

str_util.py

# 接收传入字符串 将字符串反转返回
def str_reverse(s):
    s1 = s[::-1]
    return s1

# 按照下标x和y,对字符串进行切片
def substr(s, x, y):
    s1 = s[x: y]
    return s1

main.py

import my_utils.str_util
import my_utils.file_util

str1 = my_utils.str_util.str_reverse("hello")
print(str1)
str2 = my_utils.str_util.substr("hello", 1, 4)
print(str2)

# my_utils.file_util.print_file_info("E:/tes.txt")
my_utils.file_util.append_to_file("E:/test01.txt", "hello")