网站首页 > 基础教程 正文
I/O 输入/输出(Input/Output)。python 内置了很多I/O函数,主要是针对键盘输入,文件读取和保存,屏幕显示等。
打印到屏幕
将内容打印到屏幕的最简单方法是使用 print()函数,可以在其中传递零个或多个以逗号分隔的表达式。该函数将传递的表达式转换为字符串并将结果写入标准输出。
str = "Java"
print('Python', str, 'development')
#屏幕显示结果
Python Java development
读取键盘输入
在 Python 3 中,input() 函数以字符串形式从键盘读取数据,而不管它是否用引号('' 或 "" )引起来。input([prompt]) 函数只是假定输入是一个有效的 Python 表达式并将计算结果返回。
x = input("please input:") #输入 good 之后,下是如下行内容
please input:good
打开和关闭文件
Python 默认提供了操作文件所必需的基本函数和方法。可以使用文件对象执行大部分文件操作。
打开文件
在读取或写入文件之前,必须使用内置的 open() 函数打开它。该函数创建一个文件对象,该对象将用于调用与其关联的其他支持方法。语法:
file object = open(file_name [, access_mode][, buffering])
参数说明:
- file_name 参数是一个字符串值,其中包含要访问的文件的名称。
- access_mode 确定必须打开文件的模式,即读取、写入、追加等。这是一个可选参数,默认文件访问模式是读取 (r)。
- buffering - 如果缓冲值设置为 0,则不会发生缓冲。如果缓冲值为 1,则在访问文件时执行行缓冲。如果将缓冲值指定为大于 1 的整数,则缓冲操作将以指定的缓冲区大小执行。如果为负,则缓冲区大小为系统默认值(默认行为)。
打开文件的不同模式:
- r:以只读方式打开文件。文件指针位于文件的开头。这是默认模式。
- rb:以二进制格式打开一个只读文件。文件指针位于文件的开头。这是默认模式。
- r+:打开文件进行读写。文件指针放在文件的开头。
- rb+:以二进制格式打开文件进行读写。文件指针放在文件的开头。
- w:打开一个只写文件。如果文件存在则覆盖该文件。如果该文件不存在,则创建一个新文件用于写入。
- wb:打开一个仅以二进制格式写入的文件。如果文件存在则覆盖该文件。如果该文件不存在,则创建一个新文件用于写入。
- w+:打开文件进行写入和读取。如果文件存在,则覆盖现有文件。如果该文件不存在,则创建一个新文件用于读写。
- wb+:打开一个文件,以二进制格式写入和读取。如果文件存在,则覆盖现有文件。如果该文件不存在,则创建一个新文件用于读写。
- a:打开一个文件进行追加。如果文件存在,文件指针位于文件末尾。即文件处于追加模式。如果该文件不存在,它会创建一个新文件用于写入。
- ab:打开一个文件以以二进制格式追加。如果文件存在,文件指针位于文件末尾。即文件处于追加模式。如果该文件不存在,它会创建一个新文件用于写入。
- a+:打开一个文件进行追加和读取。如果文件存在,文件指针位于文件末尾。该文件以追加模式打开。如果该文件不存在,它会创建一个新文件用于读写。
- ab+:打开一个文件,以二进制格式追加和读取。如果文件存在,文件指针位于文件末尾。该文件以追加模式打开。如果该文件不存在,它会创建一个新文件用于读写。
File对象的属性
一旦一个文件被打开,就有了一个文件对象,就可以获得与该文件相关的各种信息。
- file.closed 如果文件已关闭则返回 true,否则返回 false。
- file.mode 返回打开文件的访问模式。
- file.name 返回文件的名称。
注意:如果你安装并使用 Jupyter notebooks的话,在“命令提示符”窗口中,输入命令:jupyter notebook,启动之后,会看到:Serving notebooks from local directory: xxx,xxx这里就是你目前程序的运行目录,你可以直接把想读取内容的文件放到这里。
例如,创建一个 test.txt 文件,内容为空。
txt = open("test.txt", "wb")
print ("Name of the file: ", txt.name)
print ("Closed or not : ", txt.closed)
print ("Opening mode : ", txt.mode)
txt.close()
运行结果
Name of the file: test.txt
Closed or not : False
Opening mode : wb
close() 方法
File对象的 close() 方法会刷新所有未写入的信息并关闭文件对象,之后无法再进行写入。当一个文件的引用对象被重新分配给另一个文件时,Python 会自动关闭一个文件。最好使用 close() 方法关闭文件。语法:
fileObject.close();
例如:
txt = open("test.txt", "wb")
print ("Name of the file: ", txt.name)
txt.close()
读写文件
File对象提供了一组访问方法,可以使用 read() 和 write() 方法来读取和写入文件。
write() 方法
write() 方法将任何字符串写入打开的文件。重要的是要注意 Python 字符串可以包含二进制数据而不仅仅是文本。write() 方法不会在字符串末尾添加换行符 ('\n')。语法:
fileObject.write(string);
这里传递的参数 string 是要写入打开文件的内容。
例如:
txt = open("test.txt", "w")
txt.write( "Write the first line into file.\n")
txt.close()
如果打开test.txt文件将会看到一行内容:Write the first line into a file.
read() 方法
read() 方法从打开的文件中读取字符串。重要的是要注意 Python 字符串可以包含二进制数据。除了文本数据。语法:
fileObject.read([count]);
这里,传递的参数 count 是要从打开的文件中读取的字节数。此方法从文件开头开始读取,如果缺少计数,则它会尝试尽可能多地读取,可能直到文件末尾。
例如:
txt = open("test.txt", "r+")
str = txt.read(20)
print ("读取到的内容为 : ", str)
txt.close()
运行结果:
读取到的内容为 : Write the first line
文件定位
tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后。
seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
以上面创建的文件 test.txt 为例:
txt = open("test.txt", "r+")
str = txt.read(10)
print ("Read String is : ", str)
# 读取的当前位置
position = txt.tell()
print ("Current file position : ", position)
# 继续读取文档内容
str = txt.read(10)
print ("Next Read String is : ", str)
# 将当前位置重置为0,即文档开头位置
position = txt.seek(0, 0)
str = txt.read(10)
print ("Again read String is : ", str)
txt.close()
运行结果:
Read String is : Write the
Current file position : 10
Next Read String is : first line
Again read String is : Write the
重命名和删除文件
Python os 模块提供了一些方法来帮助您执行文件处理操作,例如重命名和删除文件。要使用这个模块,需要先导入它,然后可以调用任何相关的函数。
rename() 方法,语法:
os.rename(current_file_name, new_file_name)
有两个参数,当前文件名和新文件名。
import os
# 重命名文件名
os.rename( "test.txt", "test1.txt" )
remove() 方法,通过提供要删除的文件的名称作为参数来删除文件。语法:
os.remove(file_name)
参数为要删除的文件的名称。
import os
os.remove("text1.txt")
Python里的目录
所有文件都包含在不同的目录中,Python 处理这些也没有问题。 os 模块有几个方法可以帮助您创建、删除和更改目录。
mkdir() 方法
可以使用 os 模块的 mkdir() 方法在当前目录中创建目录。您需要为此方法提供一个参数,其中包含要创建的目录的名称。语法:
os.mkdir("newdir")
例如:
import os
# 创建目录 "test"
os.mkdir("test")
chdir() 方法,更改当前目录。语法:
os.chdir("newdir")
参数是要使其成为当前目录的目录的名称。
例如:
import os
# 将当前目录更换到 "/home/newdir"
os.chdir("/home/newdir")
getcwd() 方法,显示当前工作目录。语法:
os.getcwd()
例如:
import os
# 显示当前目录
os.getcwd()
rmdir() 方法,删除目录。语法:
os.rmdir('dirname')
参数为要删除的目录。
注意:在删除目录之前,应删除其中的所有内容。
例如:
import os
# 删除目录: "/tmp/test"
os.rmdir( "/tmp/test" )
File对象提供的函数
file 对象使用 open() 函数来创建。
- file.close() 关闭文件。关闭后文件不能再进行读写操作。
- file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
- file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
- file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。
- file.next() 返回文件下一行。
- file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
- file.readline([size]) 读取整行,包括 "\n" 字符。
- file.readlines([sizeint]) 读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
- file.seek(offset[, whence]) 设置文件当前位置
- file.tell() 返回文件当前位置。
- file.truncate([size]) 截取文件,截取的字节通过size指定,默认为当前文件位置。
- file.write(str) 将字符串写入文件,返回的是写入的字符长度。
- file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
猜你喜欢
- 2024-12-25 「万能Python」-15-文件处理 python 处理文件
- 2024-12-25 分享10个Python自动化脚本,解决日常问题
- 2024-12-25 最全Python基础知识总结 python基础100例
- 2024-12-25 Linux日常小技巧python脚本 python写linux脚本
- 2024-12-25 字符串跳舞,保姆级教程,利用python实现小姐姐跳代码舞
- 2024-12-25 Linux命令学习——rmdir命令 rm linux命令
- 2024-12-25 CMake个人理解和使用 cmake -wl
- 2024-12-25 Python文件系统:让你的文件操作变得更简单
- 2024-12-25 高效开发利器:深入学习Python标准库的实用技巧
- 2024-12-25 [python]《Python编程快速上手:让繁琐工作自动化》学习笔记3
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)