一、Python输入输出
在Python中,输入和输出是程序与用户交互的基本方式。Python提供了几种内置函数来处理输入和输出操作。
输入(Input)
Python使用input()
函数从用户那里获取输入。input()
函数将用户输入的内容作为字符串返回。
# 获取用户输入并打印
user_input = input("请输入一些内容: ")
print("你输入的内容是:", user_input)
当你运行上面的代码时,程序会等待用户在命令行中输入一些文本。用户输入的任何内容都将被存储在user_input
变量中,然后程序将打印出用户输入的内容。
输出(Output)
Python使用print()
函数来输出内容到控制台。print()
函数可以接受多个参数,并将它们打印到屏幕上。
# 输出文本
print("Hello, World!")
# 输出变量的值
x = 10
print("x的值是:", x)
# 输出多个变量的值
y = 20
print("x的值是:", x, "y的值是:", y)
# 使用格式化字符串输出
name = "Alice"
age = 30
print(f"我的名字是{name},我{age}岁了。")
print()
函数还支持格式化字符串(f-strings),这是从Python 3.6开始引入的一种新特性,允许你在字符串中嵌入表达式,这些表达式在运行时会被计算,并将结果插入到字符串中。
文件输入和输出
除了从控制台读取和写入数据外,Python还允许你读取和写入文件。这通常是通过使用open()
函数来完成的,它返回一个文件对象,你可以使用这个对象来读取或写入文件。
写入文件
# 打开一个文件以写入内容
with open('output.txt', 'w') as file:
file.write("这是写入文件的内容。")
读取文件
# 打开一个文件以读取内容
with open('output.txt', 'r') as file:
content = file.read()
print(content)
在上面的例子中,with
语句用于确保文件在使用完毕后会被正确关闭。'w'
模式表示写入模式(如果文件已存在,则会被覆盖),而'r'
模式表示读取模式。
错误和异常处理
当进行输入和输出操作时,可能会遇到错误,比如文件不存在、无法打开文件、读取/写入失败等。Python使用异常处理来管理这些情况。
try:
# 尝试打开并读取文件
with open('nonexistent.txt', 'r') as file:
content = file.read()
print(content)
except FileNotFoundError:
# 如果文件不存在,则打印错误消息
print("文件不存在,请检查文件路径和名称。")
在这个例子中,try
块包含可能会引发异常的代码。如果open()
函数无法打开文件(例如,文件不存在),则会引发FileNotFoundError
异常,然后执行except
块中的代码。
这些是Python中处理输入和输出的基本概念。通过结合使用input()
、print()
和文件操作,你可以创建出功能丰富的交互式程序。
二、读写文件-模式
open(filename, mode)
filename:包含了你要访问的文件名称的字符串值。
mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
模式 | 描述 |
---|---|
r| 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb| 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
r+| 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+| 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w| 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb| 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+| 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+| 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a| 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab| 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+| 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+| 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
三、Python文件对象的方法
在Python中,当你使用open()
函数打开一个文件时,你会得到一个文件对象。这个文件对象提供了许多方法来读取和写入文件内容,以及执行其他与文件相关的操作。以下是一些常用的文件对象方法:
读取文件
read([size])
: 读取文件内容。如果指定了size
参数,则读取指定数量的字节并返回。如果不指定size
或指定为负数,则读取并返回整个文件。
with open('file.txt', 'r') as file:
content = file.read()
print(content)
readline()
: 读取文件的一行。
with open('file.txt', 'r') as file:
line = file.readline()
print(line)
readlines()
: 读取文件的所有行,并返回一个包含各行作为元素的列表。
with open('file.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line)
写入文件
write(string)
: 将字符串写入文件。
with open('file.txt', 'w') as file:
file.write("Hello, World!")
writelines(list_of_strings)
: 将字符串列表写入文件,每个字符串对应一行。
with open('file.txt', 'w') as file:
file.writelines(["第一行\n", "第二行\n", "第三行\n"])
文件指针操作
seek(offset, whence)
: 改变文件当前位置。offset
表示偏移的字节数,whence
指定起始位置(0表示文件开头,1表示当前位置,2表示文件结尾)。
with open('file.txt', 'r') as file:
file.seek(10) # 移动到文件的第10个字节处
content = file.read()
print(content)
tell()
: 返回文件当前位置(即文件指针的当前位置)。
with open('file.txt', 'r') as file:
position = file.tell() # 获取当前位置
print(position)
关闭文件
close()
: 关闭文件。当你使用with
语句打开文件时,Python会在with
块结束后自动关闭文件,因此通常不需要手动调用close()
方法。
file = open('file.txt', 'r')
# ... 执行文件操作 ...
file.close() # 关闭文件
其他方法
flush()
: 刷新文件缓冲区,确保所有待写入的数据都被写入文件。fileno()
: 返回一个文件描述符(一个整数),可以用于低级别的I/O操作。isatty()
: 如果文件是交互式设备(如终端)则返回True,否则返回False。name
: 返回文件的名称。mode
: 返回文件的打开模式。newlines
: 返回文件中用到的行结束符,如果文件是在文本模式下打开的,则此属性有效。
这些方法提供了与文件交互的基本功能。当你处理文件时,应该始终确保在完成操作后关闭文件,以避免资源泄漏。使用with
语句是一种确保文件正确关闭的好方法。