【python】入门学习(七)
设置字符串格式:
format % values
>>> x =/
>>> print(x)
0.012345679012345678
>>> print('value:%.2f' % x)
value:0.01
d #整数
o #八进制
x #小写16进制
X #大写16进制
e #小写科学计数法
E #大写科学计数法
f #浮点数
s #字符串
% #%字符
有多个填充时,以元组的方式指明 在字符串中包含%时必须使用%%
>>> a,b,c='cat',3.1415,
>>> s = 'There\'s %d %ss older than %.2f years' % (c,a,b)
>>> s
"There's 6 cats older than 3.14 years"
格式字符串:
{}.format() #将花括号中的内容转换成圆括号中的内容
可以通过命名替换
也可以按位置替换
还可加入转换说明符,要在{}中加:
>>> 'My {pets} has {prob}'.format(pets='dog',prob='fleas')
'My dog has fleas'
>>> 'My {0} has {1}'.format('dog','fleas')
'My dog has fleas'
>>> '1/81 = {x:.3f}'.format(x=1/81)
'1/81 = 0.012'
用大括号来指定格式设置参数,显示{或}时要用{{和}}
>>> 'num = {{{x:.{d}f}}}'.format(x = 1/81, d = 3)
'num = {0.012}'
用r可以得到原始字符串
>>> print('c:\\python')
c:\python
>>> print(r'c:\python')
c:\python
文件和文件夹相关函数:
os.getcwd() #返回当前工作目录的名称
os.listdir(p) #返回一个字符串列表,其中包含路径p指定的文件夹中所有文件和文件夹的名称
os.chdir(p) #将当前工作路径设为p
os.path.isfile(p) #如果p是文件返回True,否则返回False
os.path.isdir(p) #如果p是文件夹返回True,否则返回False
os.stat(fname) #返回有关fname的信息,如大小、最后一次修改时间
#list.py
import os
def list_cwd():
return os.listdir(os.getcwd()) def files_cwd():
return [p for p in list_cwd() if os.path.isfile(p)] def folders_cwd():
return [p for p in list_cwd() if os.path.isdir(p)]
>>> files_cwd()
['area.py', 'codesum.py', 'count10.py', 'donesum.py', 'extension.py', 'fact.py', 'funny.py', 'global.py', 'greetings.py', 'hello.py', 'list.py', 'name.py', 'numnote.py', 'password1.py', 'reference.py', 'sum.py', 'timestable.py', 'welcome.py', 'yesno.py']
>>> folders_cwd()
['__pycache__']
只获取.py结尾的文件
def list_py(path = None):
if path == None:
path = os.getcwd()
return [fname for fname in os.listdir(path)
if os.path.isfile(fname)
if fname.endswith('.py')]
>>> list_py()
['area.py', 'codesum.py', 'count10.py', 'donesum.py', 'extension.py', 'fact.py', 'funny.py', 'global.py', 'greetings.py', 'hello.py', 'list.py', 'name.py', 'numnote.py', 'password1.py', 'reference.py', 'sum.py', 'timestable.py', 'welcome.py', 'yesno.py']
获取文件的大小总和:两种写法
def size_in_bytes(fname):
return os.stat(fname).st_size def cwd_size_in_bytes():
total = 0
for name in files_cwd():
total = total + size_in_bytes(name)
return total def cwd_size_in_bytes2():
return sum(size_in_bytes(f) for f in files_cwd())
>>> cwd_size_in_bytes()
3770
>>> cwd_size_in_bytes2()
3770
文本文件处理:
文件打开模式:
'r' #读取 默认
'w' #写入
'a' #文件末尾附加
'b' #二进制
't' #文本 默认
'+' #读写
默认按行读取 包括最后面的\n
#printfile.py
def print_file1(fname):
f = open(fname,'r')
for line in f:
print(line,end = '')
f.close()
>>> print_file1('printfile.py')
#printfile.py
def print_file1(fname):
f = open(fname,'r')
for line in f:
print(line,end = '')
f.close()
将整个文本作为一个大字符串来读:
>>> print(open('printfile.py').read())
#printfile.py
def print_file1(fname):
f = open(fname,'r')
for line in f:
print(line,end = '')
f.close()
写入文本文件:
#write.py
import os
def make_story2():
if os.path.isfile('story.txt'): #检查是否已存在文件
print('story.txt already exists')
else:
f = open('story.txt', 'w')
f.write('Mary had a litte lamb,\n')
f.write('and then she had some more.')
>>> make_story2()
>>> make_story2()
story.txt already exists
在末尾添加
def add_to_story(line, fname ='story.txt'):
f = open(fname, 'a')
f.write(line)
>>> add_to_story('HaHaHa!!\n')
在文件开头添加,必须把文件重写 注意要用fseek(0)
def insert_title(title, fname = 'story.txt'):
f = open(fname,'r+')
temp = f.read()
temp = title + '\n\n' + temp
f.seek(0) #让文件指向文件开头
f.write(temp)
>>> insert_title(" Story ")
最终story.txt的内容是
Story Mary had a litte lamb,
and then she had some more.HaHaHa!!
用二进制方式打开文件:
判断文件是否为gif
def is_gif(fname):
f = open(fname,'br')
first4 = tuple(f.read(4))
return first4 == (0x47,0x49,0x46,0x38)
>>> is_gif('1.gif')
True
pickle.dump #可用来存储数据
pickle.load #可用来获取数据
#picklefile.py
import pickle
def make_make_pickled_file():
grades = {'a':[4,5,6],
'b':[0,1,2],
'c':[8,9,7]}
outfile = open('grades.dat','wb')
pickle.dump(grades,outfile) def get_pickled_data():
infile = open('grades.dat','rb')
grades = pickle.load(infile)
return grades
>>> make_make_pickled_file()
>>> a = get_pickled_data()
>>> a
{'a': [4, 5, 6], 'c': [8, 9, 7], 'b': [0, 1, 2]}
pickle可以存储函数,但不能读写特殊形式的二进制文件如GIF文件
shelve模块有存储和检索数据更高级的方法
sqlite3模块提供了访问SQLite数据库的接口
读取网页
>>> import urllib.request
>>> page = urllib.request.urlopen('http://python.org')
>>> html = page.read()
>>> html[:30]
b'<!doctype html>\n<!--[if lt IE '
下面的代码可以在默认浏览器中打开页面;
>>> import webbrowser
>>> webbrowser.open('http://www.baidu.com')
True
【python】入门学习(七)的更多相关文章
- python入门学习:9.文件和异常
python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件 首先创建一个pi_ ...
- python入门学习:8.类
python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类 面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...
- python入门学习:7.函数
python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数 使用关键字def ...
- python入门学习:6.用户输入和while循环
python入门学习:6.用户输入和while循环 关键点:输入.while循环 6.1 函数input()工作原理6.2 while循环简介6.3 使用while循环处理字典和列表 6.1 函数in ...
- python入门学习:5.字典
python入门学习:5.字典 关键点:字典 5.1 使用字典5.2 遍历字典5.3 嵌套 5.1 使用字典 在python中字典是一系列键-值对.每个键都和一个值关联,你可以使用键来访问与之相关 ...
- python入门学习:4.if语句
python入门学习:4.if语句 关键点:判断 4.1 一个简单的测试4.2 条件测试4.3 if语句 4.1 一个简单的测试 if语句基本格式如下,注意不要漏了冒号 1if 条件 :2 ...
- python入门学习:3.操作列表
python入门学习:3.操作列表 关键点:列表 3.1 遍历整个列表3.2 创建数值列表3.3 使用列表3.4 元组 3.1 遍历整个列表 循环这种概念很重要,因为它是计算机自动完成重复工作的常 ...
- python入门学习:2.列表简介
python入门学习:2.列表简介 关键点:列表 2.1 列表是什么2.2 修改.添加和删除元素2.3 组织列表 2.1 列表是什么 列表,是由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...
- Python入门学习:1.变量和简单的数据类型
python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用 变量,顾名思义是一个可变的量, ...
- Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!
Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!找到你自己感兴趣的点进行切入,并找到兴趣点进行自我驱动是最好的学习方式! 推荐两本书,一本作为 ...
随机推荐
- 用jinja做了个E-Letter小项目
做了一个html E-Letter项目. 邮件模板采用jinja2, html 邮件内容生成简直太爽了. 整个项目开发只用了2个小时, 调试却花了大半天时间, 生成的邮件总是发不出去. 于是, 打开 ...
- UI第二节——UIButton详解
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...
- 【PHP面向对象(OOP)编程入门教程】16.__toString()方法
我们前面说过在类里面声明“__”开始的方法名的方法(PHP给我们提供的),都是在某一时刻不同情况下自动调用执行的方 法,“__toString()”方法也是一样自动被调用的,是在直接输出对象引用时自动 ...
- 转:利用node压缩、合并js,css,图片
1.安装nodejs http://nodejs.org/ 2.安装各自的node package js我用的是UglifyJS github地址:https://github.com/mishoo/ ...
- 01knockout应用开发之遍历简单数据$Index、$data
在knockout环境下,如何遍历一个简单的数组?对于遍历对象组件的数组来说,很容易,直接foreach:对象名,然后进行属性的绑定即可,而如下数据[10,20,30]这种简单的数组,如何去遍历呢?在 ...
- C++Socket编程总结 [转]
使用socket写代码主要是要看自己的需求是什么. 如果通信时,内容很重要就要使TCP方式. 如果用户数太多,可能就要使用UDP方式了. 在TCP模式下,最简单的方式就是这样的,使阻塞方式: 服务端: ...
- iOS开发——UI基础-Xcode资源拷贝
#1.拷贝资源的时候选择的copy的含义: 是否要将资源拷贝一份到项目中, 如果不勾选就代表着不拷贝, 那么原来的资源不见了, 项目中的也不能用了 注意: 1.虽然项目中的图片和外部的图片是同一张图片 ...
- BZOJ3172——[Tjoi2013]单词
1. 题目大意:一篇论文是由许多单词组成,现在想知道每个单词分别在论文中出现多少次. 2.分析:对着 广义后缀自动机的图看,我们就会发现玄机,答案不就是这个单词下的后缀个数吗? 于是建立自动机,然后求 ...
- 解决mvc部署在IIS上以后出现404错误
首先:aspnet_regiis -i 如果还不行,更改web.config文件,添加红色的部分 <system.webServer> <modules runAllManagedM ...
- 内网安全工具之hscan扫描
工具下载地址:hscan1.2.zip 界面简单,看配置: 这里我们主要需要配置的是模块和参数 模块,按照默认配置就行,取消 check HTTP vulnerability(漏洞检测) 会更快一点. ...