基础永远值得花费90%的精力去学习加强。认识实践的重要性。
Ax Python Files I/O | 文件流
介绍基本的I/O函数。
打印到屏幕
使用print函数,用逗号分隔表达式,输出到标准输出。
#!/usr/bin/python
print("Python is really a great language,", "isn't it?")
读取键盘
有两个函数
- raw_input(python2)
- input(python3)
例
str = input("Enter your input: ")
print("Received input is : ", str)
执行
Enter your input: te
Received input is : te
打开和关闭文件
open()
语法
file object = open(file_name [, access_mode][, buffering])
file_name: 文件名
access_mode:打开的模式,读、写、追加等
buffering:设置缓冲区。
模式列表
Sr.No. | Modes & Description |
---|---|
1 | r只读. |
2 | rb 二进制只读 |
3 | r+ 读写 |
4 | **rb+**二进制读写 |
5 | w 只写 |
6 | wb二进制只写,无则创建,有则覆盖 |
7 | w+ 读写 |
8 | **wb+**二进制读写 |
9 | a 追加 |
10 | ab 二进制追加 |
11 | **a+**追加读 |
12 | **ab+**二进制追加读 |
文件属性
打开一个文件,你就有了一个文件对象,可以获得该文件的各种信息。
Sr.No. | Attribute & Description |
---|---|
1 | file.closed 文件是否关闭,是则true,否则false |
2 | file.mode 返回文件打开时的访问模式 |
3 | file.name 返回文件名 |
4 | file.softspace 为0表示在输出一数据后,要加上一个空格符,1 表示不加,python3移除 |
例
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace
执行 −
Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Softspace flag : 0
close()
清除还没有写入的信息并关闭对象。
语法
fileObject.close()
例
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
# Close opend file
fo.close()
执行
Name of the file: foo.txt
读写文件
write()
将任何字符串写入到文件中,末尾不会添加换行符。
语法
fileObject.write(string)
例
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")
# Close opend file
fo.close()
打开文件会发现一下内容
Python is a great language.
Yeah its great!!
read()
读取文件字符串
语法
fileObject.read([count])
count是指定读取的数量,如果无则直到文件结束。
例
读取写时产生的那个文件的内容
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend file
fo.close()
执行
Read String is : Python is
文件位置
tell() 告诉你在文件中的当前位置
seek(offset[, from]) 更改文件的当前位置,offset是需要移动的字节数,from指定被移动时的位置,from为0则从开头开始,1表示当前位置,2表示结尾位置。
例
还是foo.txt
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print "Read String is : ", str
# Check current position
position = fo.tell()
print "Current file position : ", position
# Reposition pointer at the beginning once again
position = fo.seek(0, 0);
str = fo.read(10)
print "Again read String is : ", str
# Close opend file
fo.close()
执行
Read String is : Python is
Current file position : 10
Again read String is : Python is
重命名和删除文件
os module 提供了对文件的相关操作,你需要先导入该模块。这两个操作必须在文件关闭状态操作。否则会占用进程导致无法操作。
rename()
语法,两个参数,当前文件名和新文件名。
os.rename(current_file_name, new_file_name)
例
#!/usr/bin/python
import os
# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )
remove()
语法
os.remove(file_name)
例
#!/usr/bin/python
import os
# Delete file test2.txt
os.remove("text2.txt")
目录的操作
os模块还可以对目录进行操作。
mkdir()
创建一个目录
语法
os.mkdir("newdir")
例
#!/usr/bin/python
import os
# Create a directory "test"
os.mkdir("test")
chdir()
更改当前目录
语法
os.chdir("newdir")
例
#!/usr/bin/python
import os
# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")
getcwd()
显示当前目录
语法
os.getcwd()
例
#!/usr/bin/python
import os
# This would give location of the current directory
print(os.getcwd())
rmdir()
删除目录
语法
os.rmdir('dirname')
例
#!/usr/bin/python
import os
# This would remove "/tmp/test" directory.
os.rmdir( "/tmp/test" )
更多os和file的方法
file go
os go