Python 基础 (一)Python基本认识与环境搭建 | Python 基础 (一)Python基本认识与环境搭建 |
---|---|
Python 基础 (二)Python变量与基本数据类型 | Python 基础 (二)Python变量与基本数据类型 |
Python 基础 (三)Python基本语句与基本运算 | Python 基础 (三)Python基本语句与基本运算 |
Python 基础 (四)Python函数 | Python 基础 (四)Python函数 |
Python 基础 (五)Python包与模块 | Python 基础 (五)Python包与模块 |
Python 基础 (六)Python的文件模块 | Python 基础 (六)Python的文件模块 |
Python 基础 (七)Python的异常处理机制 | Python 基础 (七)Python的异常处理机制 |
Python 基础 (八)Python的类与对象 | Python 基础 (八)Python的类与对象 |
Python 基础 (九)Python的内置模块 | Python 基础 (九)Python的内置模块 |
Python 基础 (十)Python实现简单的图书管理系统 | Python 基础 (十)Python实现简单的图书管理系统 |
在Python中,您可以使用不同的方法来格式化和输出文本和数据。以下是一些常用的方法和技巧:
**print**
函数:print
函数是最常用的输出文本和数据的方式。您可以将字符串、变量和表达式传递给print
函数,并它们将被打印到标准输出(通常是终端)。name = "Alice"
age = 30
print("Name:", name, "Age:", age)
f-strings
(在Python 3.6及更高版本中可用):name = "Alice"
age = 30
print(f"Name: {name}, Age: {age}")
您还可以使用str.format()
方法或百分号格式化符号%
。
str.ljust()
、str.rjust()
和str.center()
方法来对齐文本。这些方法可以用于创建美观的输出。text = "Python"
print(text.ljust(10)) # 左对齐
print(text.rjust(10)) # 右对齐
print(text.center(10)) # 居中对齐
format
方法或f-strings。例如,控制浮点数的小数点位数:num = 3.14159265359
formatted_num = "{:.2f}".format(num)
print(formatted_num) # 输出 "3.14"
'''
或"""
)创建多行字符串:multi_line_text = """
This is a
multi-line
text.
"""
print(multi_line_text)
\n
表示换行,\t
表示制表符。print("Hello\nWorld")
open()
函数打开文件,并使用文件对象的write()
方法写入内容。with open("output.txt", "w") as file:
file.write("Hello, file!")
在Python中,您可以使用内置的input()
函数来从键盘读取用户输入。input()
函数会等待用户输入一行文本,然后返回用户输入的内容作为字符串。
以下是使用input()
函数的基本示例:
user_input = input("请输入您的名字:")
print("您输入的名字是:", user_input)
在这个示例中,input("请输入您的名字:")
会显示一个提示信息(在这里是"请输入您的名字:"),然后等待用户输入。用户输入的内容会被存储在变量user_input
中,然后用print
函数进行输出。
需要注意的是,input()
函数返回的始终是字符串,即使用户输入的是数字或其他类型的数据。如果需要将输入转换为其他类型,您可以使用适当的类型转换函数,例如int()
或float()
。
user_age = input("请输入您的年龄:")
user_age = int(user_age) # 将输入的字符串转换为整数
print("您的年龄是:", user_age)
请注意,input()
函数会一直等待用户输入,直到用户按下Enter键。如果需要终止等待,可以通过编写适当的代码来实现,例如按下特定的键或达到某个条件。
另外,对于实际应用中的用户输入,务必要考虑错误处理和异常处理,以确保程序在用户输入不符合预期时能够正确处理。
open() 将会返回一个 file 对象,基本语法格式如下:
Python open() 方法用于打开一个文件,并返回文件对象。
在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
**注意:**使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
open(file, mode=‘r’)
完整的语法格式为:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
不同模式打开文件的完全列表:
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。
size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。
# ---encoding:utf-8---
# @Time : 2023/9/2 17:58
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 打开文件
# @File : OpenTest.py
if __name__ == '__main__':
file= open("../HelloWord.py", "r")
# 读取文件
print(file.read())
# 关闭
file.close()
f.write(string) 将 string 写入到文件中, 然后返回写入的字符数
# ---encoding:utf-8---
# @Time : 2023/9/2 18:04
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 写入文件
# @File : Write.py
if __name__ == '__main__':
# 打开一个文件
f = open("foo.txt", "w")
num = f.write("Python 是一个非常好的语言。\n是的,的确非常好!!\n")
print(num)
# 关闭打开的文件
f.close()
f.readline() 会从文件中读取单独的一行。换行符为 ‘\n’。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
# ---encoding:utf-8---
# @Time : 2023/9/2 18:06
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 读取某一行
# @File : ReadLine.py
if __name__ == '__main__':
file= open("../HelloWord.py", "r")
# 读取文件
print(file.readline())
# 关闭
file.close()
f.readlines() 将返回该文件中包含的所有行。
如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。
# ---encoding:utf-8---
# @Time : 2023/9/2 18:08
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 读取所有行
# @File : Readlines.py
if __name__ == '__main__':
file= open("../HelloWord.py", "r")
# 读取文件
print(file.readlines())
# 关闭
file.close()
f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。
# ---encoding:utf-8---
# @Time : 2023/9/2 18:10
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 返回文件的当前位置
# @File : Tell.py
if __name__ == '__main__':
file= open("../HelloWord.py", "r")
# 读取文件
print(file.tell())
# 关闭
file.close()
如果要改变文件指针当前的位置, 可以使用 f.seek(offset, from_what) 函数。
from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:
# ---encoding:utf-8---
# @Time : 2023/9/2 18:12
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 移动文件的读取指针到指定位置
# @File : Seek.py
if __name__ == '__main__':
file= open("../HelloWord.py", "r")
# 读取文件
print(file.seek(3))
# 关闭
file.close()
open()
方法是Python用于打开文件的内置函数。它允许您指定文件名、文件模式以及其他可选参数,以便在程序中访问和操作文件。以下是open()
方法的常见用法和参数:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file
:要打开的文件名(包括文件路径)。可以是相对路径或绝对路径。mode
(可选):文件打开模式,默认为 'r'
(只读文本模式)。常见的模式包括:
'r'
:只读模式(文本文件)。'w'
:写入模式,如果文件不存在则创建,如果存在则截断文件。'a'
:追加模式,如果文件不存在则创建,如果存在则在文件末尾追加。'b'
:二进制模式,与上述模式结合使用,如 'rb'
、'wb'
、'ab'
。buffering
(可选):缓冲策略。通常为 -1
,表示使用默认缓冲,或者可以设置为其他整数,表示缓冲区大小。encoding
(可选):指定文件的编码方式,通常用于文本文件。例如 'utf-8'
。errors
(可选):处理编码错误的策略,通常为 'strict'
(抛出异常)、'ignore'
(忽略错误)等。newline
(可选):用于处理换行符的方式,通常为 None
(根据平台自动选择)或 ''
(不转换换行符)。closefd
(可选):如果为 True
,则会在关闭文件时关闭底层文件描述符。opener
(可选):自定义文件打开器,通常用于创建自定义文件类的实例。示例用法:
# 打开一个文本文件以供读取
with open("example.txt", "r") as file:
content = file.read()
print(content)
# 打开一个文本文件以供写入
with open("output.txt", "w") as file:
file.write("Hello, file!")
# 打开一个二进制文件以供读取
with open("binary_data.bin", "rb") as file:
data = file.read()
# 自定义编码和错误处理方式
with open("data.txt", "r", encoding="utf-8", errors="ignore") as file:
content = file.read()
请注意,在使用open()
打开文件后,应该使用with
语句来确保文件在退出代码块后正确关闭。这有助于避免资源泄漏和确保文件操作的正确性。
Python中的文件对象是通过open()
函数创建的,它用于与文件进行交互,包括读取和写入文件内容。以下是文件对象的一些常用方法:
**read(size=-1)**
:从文件中读取指定大小的数据,如果未提供size
参数或size
为负数,则会读取整个文件内容。with open("example.txt", "r") as file:
data = file.read()
**readline(size=-1)**
:读取文件的一行文本,如果提供size
参数,则最多读取指定大小的字符。with open("example.txt", "r") as file:
line = file.readline()
**readlines(hint=-1)**
:读取文件的多行文本,返回一个包含行的列表。如果提供hint
参数,则最多读取指定数量的字符。with open("example.txt", "r") as file:
lines = file.readlines()
**write(string)**
:将字符串写入文件。如果文件以写入模式打开,则会覆盖文件内容;如果文件不存在,则创建一个新文件。with open("output.txt", "w") as file:
file.write("Hello, file!")
**writelines(lines)**
:将一个包含字符串的列表写入文件,不会自动添加换行符。lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open("output.txt", "w") as file:
file.writelines(lines)
**seek(offset, whence=0)**
:移动文件指针到指定位置。offset
表示偏移量,whence
表示相对位置,默认为0(文件开头)。可以使用常量os.SEEK_SET
(开头)、os.SEEK_CUR
(当前位置)、os.SEEK_END
(文件末尾)来设置whence
。with open("example.txt", "r") as file:
file.seek(10) # 移动到文件的第11个字符位置
**tell()**
:返回文件指针的当前位置。with open("example.txt", "r") as file:
position = file.tell()
**flush()**
:刷新文件缓冲区,将缓冲区中的数据写入文件。with open("output.txt", "w") as file:
file.write("Hello, file!")
file.flush()
**close()**
:关闭文件。使用with
语句可以自动关闭文件,但在某些情况下,您可能需要显式调用close()
方法。os
模块是Python标准库中的一个重要模块,它提供了与操作系统交互的功能,包括文件和目录操作、进程管理、环境变量等。以下是一些os
模块中常用的函数和方法:
# ---encoding:utf-8---
# @Time : 2023/9/2 18:32
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site :
# @File : Os.py
import os
if __name__ == '__main__':
# 指定目录名称
new_directory = "my_directory"
# 创建新目录
os.mkdir(new_directory)
# 获取当前工作目录
current_directory = os.getcwd()
# 在新目录下创建文件
file1_path = os.path.join(new_directory, "file1.txt")
file2_path = os.path.join(new_directory, "file2.txt")
with open(file1_path, "w") as file1:
file1.write("This is file 1.")
with open(file2_path, "w") as file2:
file2.write("This is file 2.")
# 列出新目录中的文件
files_in_directory = os.listdir(new_directory)
# 打印新目录中的文件列表
print(f"Files in {new_directory}:")
for filename in files_in_directory:
print(filename)
# 获取新目录的绝对路径
new_directory_path = os.path.abspath(new_directory)
print(f"Absolute path of {new_directory}: {new_directory_path}")
# 删除新目录及其内容
os.rmdir(new_directory)
# 检查新目录是否存在
if not os.path.exists(new_directory):
print(f"{new_directory} has been deleted.")
else:
print(f"{new_directory} still exists.")
os.getcwd()
:获取当前工作目录的路径。os.chdir(path)
:更改当前工作目录为指定路径。os.listdir(path='.')
:列出指定目录中的所有文件和子目录。os.mkdir(path)
:创建一个新目录。os.makedirs(path)
:递归地创建多级目录。os.remove(path)
:删除文件。os.rmdir(path)
:删除目录(只能删除空目录)。os.removedirs(path)
:递归地删除多级目录。os.rename(src, dst)
:重命名文件或目录。os.path.join(path1, path2, ...)
:连接路径中的各个部分。os.path.abspath(path)
:返回绝对路径。os.path.dirname(path)
:返回路径中的目录部分。os.path.basename(path)
:返回路径中的文件名部分。os.path.exists(path)
:检查路径是否存在。os.path.isfile(path)
:检查路径是否为文件。os.path.isdir(path)
:检查路径是否为目录。os.environ
:包含系统环境变量的字典。os.getenv(key, default=None)
:获取指定环境变量的值。os.system(command)
:执行系统命令。os.getpid()
:获取当前进程的PID。os.getppid()
:获取父进程的PID。os.chmod(path, mode)
:修改文件权限。os.access(path, mode)
:检查对文件的访问权限。os.stat(path)
:获取文件的状态信息,包括文件大小、创建时间等。os.path.split(path)
:拆分路径为目录和文件名。os.path.splitext(path)
:拆分路径为文件名和扩展名。os.walk(top, topdown=True, onerror=None, followlinks=False)
:递归遍历目录,返回目录路径、子目录列表和文件列表。os
模块提供了丰富的功能,可以帮助您管理文件系统、操作系统环境和进程。它是编写跨平台的Python程序时的重要工具之一,因为它允许您与底层操作系统交互,执行各种文件和系统操作。