Python基础—with语法以及数据类型转换
一、with语法
生成一个有学生成绩的csv文件
import csv
file = open('学生成绩.csv', 'w', encoding='utf-8')
myWrite = csv.writer(file)col = ['姓名', '成绩']
myWrite.writerow(col)# 文件读写完毕一定要关闭文件
file.close()
with语法,经常和open方法搭配使用
with:预定义的清理操作(当一个对象长期没有被使用时就会被清理)
with open('学生成绩2.csv', 'w', encoding='utf-8', newline='') as file_1:pass## open() as a 和 a = open()一样
只要with缩进中的代码执行完了,那么这个文件所占用的进程或线程就会被清理掉(可以理解为文件被关闭)
二、数据类型的转换
字符串类型的字典如何转回字典 —— 使用eval方法
eval方法:能够将字符串类型的任意数据、表达式转换为其原来的样子,让其具有原来的功能
str1 = '{"name":"张三"}'
print(str1, type(str1))a = eval(str1)
print(a, type(a))运行结果:{"name":"张三"} <class 'str'>{'name': '张三'} <class 'dict'>
b = eval(str(123))
print(b, type(b))
c = eval('1 + 2 + 3 + 4')
print(c, type(c))
d = eval('1 > 2')运行结果:123 <class 'int'>10 <class 'int'>False <class 'bool'>
但是eval方法会涉及到安全问题,如果字符串中有恶意指令,那么eval方法会直将恶意指令执行
例如:(可见最后结果为乱码)
import os
os.system('ls')
str2 = "__import__('os').system('ls')"
print(eval(str2))运行结果:'ls' �����ڲ����ⲿ���Ҳ���ǿ����еij������������ļ���1'ls' �����ڲ����ⲿ���Ҳ���ǿ����еij������������ļ���
literal_eval相对于eval方法,不会还原字符串类型的表达式
也就意味着,如果字符串中有恶意指令,不会去执行
import ast
a1 = ast.literal_eval('[1,2,3]')
print(a1, type(a1))运行结果:[1, 2, 3] <class 'list'>
Python基础—with语法以及数据类型转换相关推荐
- python基础教程:强制数据类型转换教程及实例
1.字符强转一切 如果是字符串进行强制转换, 仅仅就是在原数据类型的两边套上引号 2.list : 强制转换成列表 如果是字符串,会把每一个字符都单独作为一个元素放到新的列表中 如果是字典,只保留键, ...
- 第三次学JAVA再学不好就吃翔(part5)--基础语法之数据类型转换
学习笔记,仅供参考 文章目录 JAVA基础语法 数据类型转换之隐式转换 数据类型转换之强制转换 JAVA基础语法 数据类型转换之隐式转换 byte类型转换为int类型 class TypeConver ...
- Python基础入门语法
Python基础语法目录 一.Python环境 1.python2和python3同时存在电脑时 二.HelloPython 三.数据结构 1.List 2.String 3.Dict 四.赋值_条件 ...
- python输出浮点数_Python的数据类型转换,那个很多人知道的知识,你知道吗?
前言 阿皮又来和大家分享Python干货了,大家昨天的题会做吗? 这是答案: print(1.2+1.2) 输出:2.4 print('1.2'+'1.2') 输出:1.212 这两个不同的输出结果看 ...
- python基础编程语法-Python基础语法一
一.变量与数据类型 Python语言是面向对象编程语言,可以说在Python中一切皆对象.对象是某类型具体实例中的某一个实例,每个对象都有身份.类型和值. 身份(Identity)与对象都是唯一对应关 ...
- 第二篇 python基础知识总结:数据、运算符
引子 我们跟任何人交流,说的每一句都是都一些文字组成,包含名词.动词.语句.标点符号等,组成我们说普通话构成的基本要素.同理我们学习python语言也要明白这些基本要素,也就是我们常说的基本语法,这是 ...
- Python基础知识进阶之数据爬虫
一.爬虫概述 爬虫是指利用网络抓取模块对某个网站或者某个应用中有价值的信息进行提取.还可以模拟用户在浏览器或者APP应用上的操作行为,实现程序自动化.简单来说就是我们把互联网有价值的信息都比喻成大的蜘 ...
- python编程语法-Python基础及语法(十三)
数据库开发 比较有名的模块有: MySQLdb 支持Python2,不知道Python3,已停止更新 mysqlclient 在MySQLdb的基础上支持Python3 MYSQL官方Connecto ...
- python基础编程语法-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...
最新文章
- python3 try语句相关 (try/except/else/finally)
- WebService入门简介教程
- 【声入人心:音频新体验】
- matlab机械臂工作空间代码_老外研发模拟肌肉运动的机械臂,与人类协同工作动作完美同步...
- Ajax-基础篇(持续更新01)
- 【错误记录】Invalid character found in method name. HTTP method names must be tokens
- 小别墅样式_6款三层小别墅样式,各风格特色图纸为农村自建量身打造
- 百度云BaaS体系揭秘,突破共识机制、单机计算和串行处理三大瓶颈
- Linux中要重启apache服务与在windows是有很大的区别,下面我们来介绍一下
- 2012中国移动社交游戏市场盈利模式探讨
- U盘中病毒了,丢失的文件能用EasyRecovery恢复吗?
- HTML5---2.语义化标签的兼容性问题以及解决方案
- The BIG Talk 2015 :创新金融和智能城市
- 职业规划报告!草草了事,看看得了
- 宏晶微MS2109高清视频采集芯片资料
- python写小程序后台——学习(小白)
- 移动端网页的基础制作
- android 重启 logo,MSM8909+Android5.1.1开机logo对应的splash.img生成
- python爬取腾讯新闻_Python采集腾讯新闻实例
- Machine Learning-数学基础2