python脚本构造表中数据&读写文件&异常处理机制

读写文件

读取文件

  • 使用 open() 函数和上下文管理器
  • 打开文件通常使用 open() 函数
    • 它接受文件名作为参数
    • 并且可以指定打开模式(默认是读取模式 ‘r’)
  • 使用上下文管理器(with 语句)是一种最佳实践,因为它会在操作完成后自动关闭文件,即使遇到错误也是如此
with open('pi_digits.txt', 'r') as file_object:
    contents = file_object.read()
print(contents)

逐行读取

  • 除了读取整个文件内容,还可以逐行读取,这对于大型文件特别有用,因为它不会一次性加载所有内容到内存
with open('poem','r',encoding='utf-8') as rf:
    for line in rf:
        print(line.strip())

写入文件

  • 写入文件同样使用 open() 函数,但要以写入模式(`‘w’)或追加模式(‘a’)打开文件。写入操作会覆盖或添加内容到文件。
with open('poem','w',encoding='utf-8') as wf:
    wf.write('啦啦啦')
文件路径
  • 当指定文件名时,Python会在当前执行脚本的目录中查找文件。对于不在同一目录的文件,可以提供绝对路径或相对路径。在Windows中,路径分隔符是 \,而在Linux和macOS X中是 /。
with open('relative/path/to/file.txt', 'r') as file_object:
    # 读取文件
异常处理
  • 文件操作时可能会遇到多种错误,如文件不存在、权限问题等。使用try-except结构捕获异常,可以优雅地处理这些问题。
try:
    with open('poem1','r',encoding='utf-8') as rf:
        for line in rf:
            print(line.strip())
except FileNotFoundError as error:
    print(type(error))
    print(error)
except Exception as error:
    print(type(error))
    print(error)
except:
    print('143-145有异常')
-----------------------------------------------    
try:
    print(1/0)
except Exception as e:
    print(e)
finally:
    print('finally')
-----------------------------------------------    
try:
    print(1/0)
except Exception as e:
    print(e)
else:
    print('else')
finally:
    print('finally')
'''这段Python代码主要展示了异常处理的结构,包括try、except、else和finally四个部分。
首先,在try块中,尝试执行print(1/0)语句。此语句会触发ZeroDivisionError异常,因为除数为零是不允许的。
接着,当发生异常时,程序会跳转到except块中。此处使用了except Exception as e,可以捕获所有类型的异常,并将异常对象赋值给变量e。然后,通过print(e)打印出异常信息,即"division by zero"。
如果try块中的代码没有发生异常,就会执行else块中的代码。在此例中,会打印出"else"。
最后,无论try块中的代码是否发生异常,都会执行finally块中的代码。此处打印出"finally"'''
为什么要有try-except语法/异常处理机制?

try-except 语法在 Python 中用于异常处理,它的存在是为了程序的健壮性。当代码中可能存在错误或异常的情况下,使用 try-except 可以确保程序不会因未预期的错误而突然崩溃。以下是其主要目的:
错误处理:try 块内的代码如果抛出异常,except 块将捕获并处理这个异常。这允许程序员定义如何响应特定类型的错误,比如打印一条错误消息,记录日志,或者采取其他恢复措施。
程序连续性:即使有部分代码出错,finally 块中的代码也会在任何情况下执行。这常用于资源清理,如关闭文件、网络连接等,确保这些操作在程序退出前得以完成,无论是否发生异常。
逻辑控制:else 块提供了在 try 没有抛出异常时执行的代码路径。这可以用于在成功执行某项操作后执行额外的逻辑。
调试辅助:通过捕获和打印异常,开发者可以更容易地了解程序在何处出错以及原因,这对于调试和优化代码非常有帮助。

脚本构造sql数据

在这里插入图片描述

for n in range(11,21):
    demo_sql = '''INSERT INTO `crm9`.`72crm_crm_customer` (`customer_id`, `customer_name`, `followup`, `is_lock`, `next_time`, `deal_status`, `mobile`, `telephone`, `website`, `remark`, `create_user_id`, `owner_user_id`, `ro_user_id`, `rw_user_id`, `address`, `location`, `detail_address`, `lng`, `lat`, `create_time`, `update_time`, `batch_id`, `last_content`) VALUES ('114021', '今天进步了111点点', NULL, '0', NULL, '0', '', '', '', '', '552', '552', ',', ',', '', '', '', '', '', '2024-05-19 14:02:42', '2024-05-19 14:02:42', '44e7f5e5389c4eec81c08cd52144993c', NULL);'''
    new_customer_id = '1140%d'%n
    new_customer_name = '今天进步了%d点点'%n
    new_create_time = str(datetime.datetime.now())
    new_sql = demo_sql.replace('114021',new_customer_id)
    new_sql = new_sql.replace('今天进步了111点点',new_customer_name)
    new_sql = new_sql.replace('2024-05-19 14:02:42',new_create_time)
    print(new_sql)
    with open('system.sql','a',encoding='utf-8') as wf:
        wf.write(new_sql+'\n')

在这里插入图片描述
在这里插入图片描述

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值