Python学习笔记 模块;文件与文本处理
1.Python中时间函数有几种不同的表示方法。一种是基于数字的表示方法,另外一种是用一系列值来表示,第三种是用ASCII码字符串的可读形式来表示的元组。 time()函数返回的是从某一时间点算起的秒数,该数值是一个浮点数。根据操作系统的不同,这个时间点也不同。通过求localtime(0)的值可以找到系统的该时间点。 localtime(t)返回一个具有9个元素的元组。 ctime(t)返回一个表示时间值的ASCII码的字符串,t作为浮点型数值传递给函数。 >>> import time
>>> print time.ctime(0)
Thu Jan 01 08:00:00 1970 >>> print time.localtime(0)
(1970, 1, 1, 8, 0, 0, 3, 1, 0)
>>> 2.Python中只允许通过值来传递变量,但在其他语言中,允许通过引用来传递变量。在这种情况下,可以在函数内部改变参数值。而且改变将对调用程序产生影响。 3.处理二进制文件:二进制文件中,字符不是用可识别的行结束符按行来组织的。这样,对二进制文件进行处理的方式,跟对文本文件进行处理的方式有所不同。首先,如果要对二进制文件进行操作的话,必须在open函数中的打开模式参数中附加一个字母"b”来加以指定。 >>> b_out=open("D:\\outbin.dat","wb") 若要写入二进制数据,需要用struct模块包装数据,可参考python库中有关struct的所有可能的操作。 >>> b_out.write(struct.pack('4i',1,2,3,4))
>>> b_out.close() 读二进制文件时需要指定读出数据的数量,可以在read()方法中使用可选择的长度变量来指定。 >>> b=open("D:\\outbin.dat","rb")
>>> bytes=b.read(4) 在打印这些字节之前,需将它们转换成可打印的形式。ord()函数可以执行该项执行:
>>> for c in bytes:print ord(c) 1
0
0
0 问题:为什么输出的不是1 2 3 4? 4.如果要在Python中创建一个COPY命令,可以以写模式另外打开一个文件,然后将原文件内容逐行写入新打开的文件中,而不是将文件内容打印出来。 #创建与copy menu.txt menu.bak等效的命令 #分别以读模式和写模式打开文件 inp=open(“D:\\menu.txt”,"r”) outp=open(“menu.bak”,"w”) #逐行读文件直到结束 #将每行拷贝到输出文件 line=inp.readline() while line: outp.write(line)
相关文档:
#shell排序
def ShellPass(mylist, d):
size = len(mylist)
i = d
while i < size:
if mylist[i] < mylist[i - d]:
tmp = mylist[i]
j = i - d
mylist[j + d] = mylist[j]
j = j - d
while j >= 0 and mylist[j] > ......
情景一:
在文件夹里有六十多个RM格式的视频文件,我现在需要把它们的文件名都提取出来,并去掉文件的扩展名,以便放到需要的网页里。
应该有什么软件可以完成这个简单的要求,可是一时间到哪里去找这 样一个符合要求的软件呢?总不能手工完成把。在Linux上用强大的shell脚本应该也可以完成,可是使用Windows的朋友呢?其 ......
# coding=gb2312
# 用中文注释前务必加上第一行
# 求模运算符,和C语言一样
print 10%9
# 整数相除仍然是整数
print 5/2
# 2后加上.就变成浮点数了
print 5/2.
# **表示求幂运算
print 7**4
# 函数用时要加上module.function
import math
print math.floor(19.8)
# 函数名也可以成为变量
func = math.floor
......
只需要在文件中import与你写的文件的文件名一致的模块名即可,这时python会为你创建一个pyc文件的。
即,如果你已经写了一个名为ssss.py的文件,而现在你需要在名为aaaa.py的文件中使用ssss.py中定义的方法,那么你只需要在aaaa.py中加入import ssss,然后你就可以在aaaa.py中使用ssss.py中的方法(当然方法前需要加模块名 ......