一、打印到屏幕
最简单的输出方法是用print语句,给它传递零个或多个用逗号隔开的表达式。此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下:
print("学习python")
二、读取键盘输入
python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘。如下:
raw_input
input
1、raw_input函数
raw_input([prompt])函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符)
举例:
str = raw_input("请输入:")
print("你输入的内容是:",str)
2、input函数
input([prompt])函数和raw_input([prompt])函数基本类似,但是input可以接收一个python表达式作为输入,并将运算结果返回。
举例:
str = input("请输入:")
print("你输入的内容是:",str)
打开和关闭文件
python提供了必要的函数和方法进行默认情况下的文件基本操作,可以用file对象做大部分的文件操作
三、打开文件
open函数
使用python内置的方法open()函数打开文件,创建一个file对象,相关的方法才可以调用它进行读写
语法:
file object = open(file_name [,access_mode] [,buffering])
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数的细节如下:
(1)file_name:file_name变量是一个包含了你要访问的文件名称的字符串值
(2)access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制性的,默认文件访问模式为只读(r)
(3)buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认
(4)encoding:一般使用utf8
(5)errors:报错级别
(6)newline区分换行符
(7)closefd传入的file参数类型
(8)opener:
不同模式打开文件的完全列表(mode参数有):
模式
描述
t
文本模式 (默认)。
x
写模式,新建一个文件,如果该文件已存在则会报错。
b
二进制模式。
+
打开一个文件进行更新(可读可写)。
U
通用换行模式(不推荐)。
r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w
打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+
打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
默认为文本模式,如果要以二进制模式打开。加上 b
读取文模式举例:
1、写模式:w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果不存在,创建新文件
f=open('aa.txt','w')
f.write("学习python")
f.close()
读写模式:w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果不存在,创建新文件
f = open('bb.txt','w+')
f.write("学习学习我爱学习")
print("定位之前的光标位置:%s" % (f.tell()))
f.flush()
f.seek(0)
print("定位之后的光标的位置:%s" % (f.tell()))
i = f.read()
print(i)
f.close()
模式
r
r+
w
w+
a
a+
读
+
+
+
+
写
+
+
+
+
+
创建
+
+
+
+
覆盖
+
+
指针在开始
+
+
+
+
指针在结尾
+
+
file对象的属性
一个文件被打开后,有一个file对象,你可以得到有关该文件的各种信息
以下是和file对象相关的所有属性的列表
属性
描述
file.closed()
如果文件已被关闭,返回true,否则返回false。
file.mode()
返回被打开文件的访问模式。
file.name()
返回文件的名称。
file.softspace()
如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
file.flush()
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入
file.fileno()
返回一个整型的文件描述符(file descriptor FD整型),可以用在如os模块的read方法等一些底层操作上
file.isatty()
如果文件连接到一个终端设备返回True,否则返回False
file.next()
返回文件的下一行
file.read([size])
从文件读取指定的字节数,如果未给定或为负,则读取所有(通常用于将文件内容放到一个字符串变量中)
file.readline([size])
读取整行,每次只读取一行,包括"\n"字符
file.readlines([sizehint])
一次性读取文件的所有行,自动将文件内容分析成一个行的列表,该列表可以由python的for...in...结构进行处理。若给定sizehint>0,返回总和大约为sizehint字节的行,实际读取值可能比sizehint较大,因为需要填充缓冲区
file.seek(offset[,whence])
设置文件当前位置
file.tell()
返回文件的当前位置
file.truncate([size])
截取文件,截取的字节通过size指定,默认为当前文件位置
file.write(str)
将字符串写入文件,没有返回值
file.writelines(sequence)
向文件写入一个序列字符串列表,如果需要执行则要自己加入每行的换行符
案例:读取stu_info.txt文件的内容,并将所有文件中学生的名称显示出来
f=open('stu_info.txt','r')
lines=f.readlines()
pring(lines)
print("文件名:",f.name)
print("是否关闭文件:",f.closed
print("访问模式:",f.mode)
print("关闭文件",f.close())
print("读取文件路径:",f.read())
方法介绍举例:
1、read()方法
read()方法从一个打开的文件中读取一个字符串。需要注意的是:python字符串可以是二进制数据,而不仅仅是文字
语法:
fileObject.read([count])
这里被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开开始读入,如果没有传入count。它会尝试尽可能多地读取个多地读取更多的内容,很可能是直到文件的末尾
举例;
f = open('ccc.txt','r+')
str = f.read(10)
print("读取的字符串:",str)
f.close()
2、readline()方法用于从文件读取整行,包括“\n”字符。如果指定了一个非负整的参数,则返回指定大小的字节数,包括"\n"字符
语法:
fileObject.readline()
f = open('xxx.txt','r')
line = f.readline(3)
print(line)
3、readlines()方法用于读取所有行(直到结束符EOF)并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行,实际读取值可能比sizeint较大,因为需要填充缓冲区。如果碰到结束符EOF则返回空字符串
语法:
fileObject.readlines()
4、close()方法
file 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后不能在进行写入
当一个文件对象的引用被重新指定给另一个文件时,python会关闭之前的文件。用close()方法关闭文件是一个好的习惯
语法:
fileObject.close()
举例:
f=open('xxx.txt','w')
print("文件名:",f.name)
#关闭该文件
f.close()
5、write() 方法
write() 方法可将任何字符串写入一个打开的文件。需注意的是,python字符串可以是二进制数据,而不仅仅是文字
write()方法不会在字符串的结尾添加换行符('\n')
语法:
fileObject.write(string)
6、fileno()方法返回一个整型的文件描述(file descriptor FD整型),可用于底层操作系统的I/O操作
语法:
fileObject.fileno()
返回值:文件描述符
例子:
f = open('xxx.txt','a+')
fid = f.fileno()
print("文件的描述为:",fid)
f.close()
7、next()返回文件的下一行
语法:
next(iterator[,default])
举例:
f = open('xxx.txt','r')
print ("文件名为:"f.name)
for index in range(5) :
line = next(f)
print("第%d行 - %s" % (index,line))
f.close()
8、truncate()方法用于截断文件,如果指定了可选参数size,则表示截断文字为size个字符。如果没有指定size。则重置到当前位置
语法:fileObject.truncate([size])
9、writelines()方法用于向文件中写入一序列的字符串,这一序列字符串可以是由迭代对象产生的,如一个字符串列表,换行需要指定换行符 \n
语法:
fileObject.writelines([str])
例子:
f = open('xx.txt','a+')
seq = ["我学python"]
f.writelines(seq)
f.flush()
f.seek(0,0) # 跳到行首
line = f.readlines()
print("读取的数据" % (line))
f.close()
文件定位
10、tell()方法告诉你文件内的当前位置,换句话说,下一次的读写会发生在文件开头这么多字节之后
seek(offset[,from])方法改变当前文件的位置。Offset变量 表示要移动的字节数。From变量指定开始移动字节的参考位置
如果from被设置为0,这就意味着将文件的开头作为移动字节的参考位置。如果设置为1,则使用当前的位置作为参考位置。如果设置为2,那么该文件的末尾将作为参考位置
例子:
f = open ('xxx.txt','r+')
str = f.read(10)
print("读取的字符串是:",str)
position = f.tell() #查找当前位置
print("读取的位置是:",position)
#把指针再次重新定位到文件开头
position = f.seek(0,0)
str = f.read(10)
print("重新读取字符串",str)
f.close()
重命名和删除文件
1、python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件
要使用这个模块,必须先导入它,然后才可以调用相关的各种功能
rename()方法:
rename()方法需要两个参数,当前的文件名和新文件名
语法:
os.rename(current_file,new_file_name)
例子:
下列将重命名一个已经存在的文件test1.txt
import os
os.rename("test1.txt","test2.txt")
2、remove()方法
可以用remove()方法删除文件,需要提供要删除的文件名作为参数
语法:
os.remove(file_name)
举例:
删除一个已经存在的文件test2.txt
import os
os.remove("test2.txt")
python里的目录:
所有文件都包含在各个不同的目录下,不过python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。
1、mkdir()方法
可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数
语法:
os.mkdir("newdir")
举例:在当前的目录下创建一个新目录test
import os
os.mkdir("test")
2、chdir()方法
可以用chdir()来改变当前的目录。chdir()方法需要一个参数是你想设成当前目录的目录名称
语法:
os.chdir("newdir")
例子:下列将进入“/home/newdir”目录
import os
os.chdir("/home/newdir") #将当前目录改为"/home/newdir"
3、getcwd()方法:
getcwd()方法显示当前的工作目录
语法:
os.getcwd()
例子:下列给出当前目录:
import os
print(os.getcwd())
4、rmdir()方法
rmdir()方法删除目录,目录名称以参数传递
在删除这个目录之前,他的所有内容都应该先被清除
语法:
os.rmdir('dirname')
例子:删除“/tmp/test”目录的例子。目录完全合规的名称必须被给出,否则会在当下目录下搜索该目录
import os
os.rmdir("/tmp/test")
文件、目录相关的方法
file对象和os对象提供了很多文件与目录的操作方法
1、file对象方法:file对象提供了操作文件的一系列的方法(已介绍)
2、os对象方法:提供了处理文件及目录的一系列方法(见下个笔记)