1. 标准输入输出
print string
raw_input(string):函数从标准输入读取一行并返回一个字符串(去掉结尾的换行)。
input:相当于raw_input,只是它假设输入的是一个有效的Python表达式,并返回计算结果。
2. 文件操作
文件读写之前需要用内置函数open打开文件,获取文件操作对象
1)file_handle = open(file_name [, access_mode][, buffering])
file_name: 字符串值,待访问的文件的名称
access_mode: 文件被打开的模式,即读、写,追加等,可选参数,默认为read (r)。
buffering: 缓冲值,0--没有缓冲将发生;1--行缓冲会在访问一个文件来执行。大于1的整数--缓冲作用将与所指示的缓冲区的大小进行;负数--缓冲区的大小是系统默认(默认行为)。
打开文件的不同模式的列表:
file 对象属性:
一旦文件被打开,文件对象可以得到有关该文件的各种信息。下面是文件对象相关的所有属性的列表:
2)file_handle.close()
刷新未写入的信息,并关闭该文件的对象,在这之后没有数据内容可以执行写入。
3)file_handle.write(string)
写入字符串到文件。要注意的是Python字符串可以具有二进制数据,而不仅仅是文本。write()方法不要将换行字符('n')添加到字符串的结尾:
4)file_handle.read([count])
读取一个打开的文件的字符串(可以二进制数据或文本)。
[count]:读出的字节数。从文件的开头读取,若无参,则尽可能多地读取,直到文件末尾。
5)file_handle.readline([count])
从文件中读取一整行。尾部的换行符保持在字符串中。如果大小参数且非负,那么一个最大字节数,包括结尾的换行和不完整的行可能会返回。
遇到EOF时立即返回一个空字符串。则判断读取完毕即file_handle.readline()!=''即可
readlines()为读取多行
6)file_handle.flush()
刷新内部缓冲区,像标准输入输出的fflush。这类似文件的对象,无操作。Python关闭时自动刷新文件。
7)file_handle.fileno()
返回所使用的底层实现,要求从操作系统I/O操作的整数文件描述符。返回整数文件描述符。
tell()方法告诉该文件中的当前位置;换句话说,下一个读取或写入将发生在从该文件的开头的字节数。
8)file_handle.isatty()
如果文件已连接(与终端设备相关联)到一个tty(状)的设备,返回True,否则返回False。
9)file_handle.next()
当一个文件被用作迭代器,典型例子是在一个循环中被使用,被反复调用。此方法返回下一个输入行,或引发StopIteration异常EOF时被命中。
与其它文件的方法,如ReadLine()相结合next()方法工作不正常。然而,usingseek()将文件重新定位到一个绝对位置将刷新预读缓冲器。
10)file_handle.seek(offset[, from])
更改当前文件位置。偏移参数指示要移动的字节数。从该参数指定字节将被移至参考点。
如果from被设置为0,这意味着使用该文件的开始处作为基准位置,设置为1则是使用当前位置作为基准位置,如果它被设置为2,则该文件的末尾将被作为基准位置。
11)os.rename(old_file_name, new_file_name) 重命名文件名字
os.remove(file_name) 删除文件
os.mkdir("filedir") 创建目录。需要提供参数,这个方法包含的目录要创建的名称
os.chdir("/home/newdir") 改变目录路径
os.getcwd() 显示当前的工作目录
os.rmdir('dirname') 删除目录
3. 补充说明
1)python IOError: [Errno 0] Error
Windows系统下,此异常在以'a+'模式打开文件,读文件,再写入过程中出现。其原因在于读写交替过程中必须要有fflush, fseek, fsetpos, rewind这类操作,不然python就不知道当前文件位置在哪啦。最笨的办法就是在关闭文件前只做读或者写一种操作,省心一点的方法是在写入文件前用fseek(),或者fsetpos()设定插入文本的位置。
f.seek(offset [, whence]) whence 为0表示当前文件位置在文件开头,1表示在上次read后的地方,2表示文件末尾。offset为偏移量。
在国外教程很少出现'a+'、'w+'、'r+'等读写模式。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。