python语法的一些问题1

open 文件操作

python strip()函数

.read()  、readline()与readlines()

split()函数

一、open 文件操作

open/文件操作
f=open(‘/tmp/hello‘,‘w‘)

#open(路径+文件名,读写模式)

#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式

如:‘rb‘,‘wb‘,‘r+b‘等等

读写模式的类型有:

rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w     以写方式打开,
a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+     以读写模式打开
w+     以读写模式打开 (参见 w )
a+     以读写模式打开 (参见 a )
rb     以二进制读模式打开
wb     以二进制写模式打开 (参见 w )
ab     以二进制追加模式打开 (参见 a )
rb+    以二进制读写模式打开 (参见 r+ )
wb+    以二进制读写模式打开 (参见 w+ )
ab+    以二进制读写模式打开 (参见 a+ )

注意:

1、使用‘W‘,文件若存在,首先要清空,然后(重新)创建,

2、使用‘a‘模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。

f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)

file.readline() 返回一行

file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行

for line in f: print line #通过迭代器访问

f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.

f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).

f.seek(偏移量,[起始位置])

用来移动文件指针

偏移量:单位:比特,可正可负

起始位置:0-文件头,默认值;1-当前位置;2-文件尾

f.close() 关闭文件

二、python strip()函数

声明:s为字符串,rm为要删除的字符序列

s.strip(rm)        删除s字符串中开头、结尾处,位于 rm删除序列的字符

s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符

s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符

注意

1. 当rm为空时,默认删除空白符(包括‘\n‘, ‘\r‘,  ‘\t‘,  ‘ ‘)

例如:

2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。

三、.read()  、readline()与readlines()

.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。

.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。

通过readline输出,对于比较大的文件,这种占用内存比较小。
#coding:utf-8  

f = open(‘poem.txt‘,‘r‘)
result = list()
for line in open(‘poem.txt‘):
    line = f.readline()
    print line
    result.append(line)
print result
f.close()
open(‘result-readline.txt‘, ‘w‘).write(‘%s‘ % ‘\n‘.join(result))
通过readline输出,对于比较大的文件,这种占用内存比较小。
#coding:utf-8  

f = open(‘poem.txt‘,‘r‘)
result = list()
for line in open(‘poem.txt‘):
    line = f.readline()
    print line
    result.append(line)
print result
f.close()
open(‘result-readline.txt‘, ‘w‘).write(‘%s‘ % ‘\n‘.join(result))

四、split()函数

1、常用实例

>>> u = "www.doiido.com.cn"

#使用默认分隔符
>>> print u.split()
[‘www.doiido.com.cn‘]

#以"."为分隔符
>>> print u.split(‘.‘)
[‘www‘, ‘doiido‘, ‘com‘, ‘cn‘]

#分割0次
>>> print u.split(‘.‘,0)
[‘www.doiido.com.cn‘]

#分割一次
>>> print u.split(‘.‘,1)
[‘www‘, ‘doiido.com.cn‘]

#分割两次
>>> print u.split(‘.‘,2)
[‘www‘, ‘doiido‘, ‘com.cn‘]

#分割两次,并取序列为1的项
>>> print u.split(‘.‘,2)[1]
doiido

#分割最多次(实际与不加num参数相同)
>>> print u.split(‘.‘,-1)
[‘www‘, ‘doiido‘, ‘com‘, ‘cn‘]

#分割两次,并把分割后的三个部分保存到三个文件
>>> u1,u2,u3 = u.split(‘.‘,2)
>>> print u1
www
>>> print u2
doiido
>>> print u3
com.cn

 2、去掉换行符
>>> c = ‘‘‘say
hello
baby‘‘‘

>>> print c
say
hello
baby

>>> print c.split(‘\n‘)
[‘say‘, ‘hello‘, ‘baby‘]

3、分离文件名和路径
 >>> import os
>>> print os.path.split(‘/dodo/soft/python/‘)
(‘/dodo/soft/python‘, ‘‘)
>>> print os.path.split(‘/dodo/soft/python‘)
(‘/dodo/soft‘, ‘python‘)

4、一个超级好的例子

>>> str="hello boy<[www.doiido.com]>byebye"

>>> print str.split("[")[1].split("]")[0]
www.doiido.com

>>> print str.split("[")[1].split("]")[0].split(".")
[‘www‘, ‘doiido‘, ‘com‘]
时间: 2024-10-06 15:15:48

python语法的一些问题1的相关文章

初试Python语法小试牛刀之冒泡排序

Python很火,心里很慌,没吃过猪肉,也要见见猪走路. 看了几天Python的语法,大概初步了解了一点点,https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 想综合起来练习一下Python的语法,就从最简答的冒泡排序开始吧. 鉴于Python的灵活性,甚至可以不需要类,不需要main方法,仅仅写个方法然后执行方法就可以运行, 以下简单尝试从类Class的角度来封装一个最最简单的方

转 python语法学习面向对象之继承

传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始化方法__init__,可以理解为构造,self,理解为this,等等在前一篇文章中介绍过,现在就学习类的继承. 继承: 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型关系. 需要注意的地方:继承语法   class 派生类

python 语法学习

同时给x,y,z赋值: x,y,z=1,2,3 x值与y的值交换 x,y=y,x python 语法学习

设法使UltraEdit支持python语法高亮

最近在学习python,发现UltraEdit里面没有python语法高亮,百度了一番,找到一个可行的方式,记录一下. 1,在UltraEdit菜单的 高级->配置->编辑器显示->语法高亮 选项卡中可找到wordfile文件的保存路径,打开该文件,将下载的wordfile文件复制到已有的wordfile文件末尾. 2.把复制内容的第一行中/L10改成没有使用过的.(原有的wordfile中从上往下看看,这里每一个数字代表一种语法,我的文件已经使用到L11了,故我改成了L12) /L10

写一个函数,识别字符串是否符合python语法的变量名

2018年01月05日 09:07:19 阅读数:115 # 写一个函数,识别字符串是否符合python语法的变量名 # 导入关键字 import keyword key_word = keyword.kwlist def python_grammar(num): # 判断输入的空字符 if num == "": print("不符合python命名规则") return count = 0 while count < len(num): # 判断字符串的所有

wxpython 支持python语法高亮的自定义文本框控件的代码

在研发闲暇时间,把开发过程中比较重要的一些代码做个珍藏,下面的代码内容是关于wxpython 支持python语法高亮的自定义文本框控件的代码,应该是对大家也有用. import keywordimport wximport wx.stc as stcimport images #---------------------------------------------------------------------- demoText = """## This versio

鲜为人知的 Python 语法

编译: Python 开发者 - 伯乐在线读者 ,英文:medium http://python.jobbole.com/89252/ 所有人(好吧,不是所有人)都知道 python 是一门用途广泛.易读.而且容易入门的编程语言. 但同时 python 语法也允许我们做一些很奇怪的事情. 使用 lambda 表达式重写多行函数 众所周知 python 的 lambda 表达式不支持多行代码.但是可以模拟出多行代码的效果. def f(): x = 'string' if x.endswith('

python语法区别

python语法区别: 大小写敏感 (动态语言:python)变量不用声明 p.s: 静态语言(Java)必须声明变量 语句末尾可以不打分号 可以直接进行数学计算 复制.粘贴功能失效,粘贴到别的地方的代码需要重新检查缩进是否正确 整数没有大小限制 浮点数也没有大小限制,但超出一定范围直接表示为inf(无限大) 原文地址:https://www.cnblogs.com/musecho/p/11666538.html

Python语法特性

Python语法特性 使用Python来编写也有很长一段时间了,也想着如何优化自己的代码,随之也搜了一些问题.其中印象比较深刻的就是stackoverflow上的一个问题解答了. Argument Unpacking 可以使用 * 和 ** 分别将一个列表和一个字典解包为函数参数如: def draw_point(x, y): # do something tuple = (6, 8) dir = {'x': 6, 'y': 8} draw_point(*tuple) draw_point(**

python语法入门之与用户交互,常用运算符

python语法入门之与用户交互,常用运算符 一.用户与程序的交互 1.1什么是用户交互 用户交互就是往计算机input/输入数据,计算机print/输出结果. 1.2为什么要与用户交互 交互时为了能够像人一样与用户沟通方便. 1.3 如何与用户交互 交互的本质就是输入输出. 3.1 输入input: 在python3中input无论输入的什么类型的内容,都会存为字符串类型. name = input('请输入用户名:')请输入用户名:123>>> print(type(name))&l