Python中文件的基本操作

  1. 打开文件:

可以使用open()函数打开一个文件,并指定打开文件的模式和文件名:

# 打开文件
file = open("filename.txt", "r")

其中,第一个参数为文件名,第二个参数为打开文件的模式,常用的模式有:

  • “r”:只读模式,在这个模式下,文件指针从文件开头开始,如果文件不存在则会报错。
  • “w”:写入模式,如果文件不存在则会自动创建文件,如果文件存在则会覆盖文件内容。
  • “a”:追加模式,在这个模式下,文件指针从文件末尾开始,如果文件不存在则会自动创建文件。
  • “x”:独占模式,创建指定文件名的新文件,如果文件已经存在则会报错。
  1. 关闭文件:

使用close()函数关闭一个已经打开的文件:

# 关闭文件
file.close()
  1. 读取文件:

使用read()函数读取文件的内容:

# 读取整个文件
content = file.read()
print(content)

也可以使用readline()函数逐行读取文件的内容:

# 逐行读取文件
line = file.readline()
while line:
    print(line)
    line = file.readline()
  1. 写入文件:

使用write()函数向文件中写入内容:

# 写入文件
file.write("Hello World!")
  1. 删除文件:

使用os模块中的remove()函数删除文件:

# 删除文件
import os
os.remove("filename.txt")
  1. 合并两个文件内容

可以使用with open语句以追加模式打开两个文件,读取其中的内容并逐行写入新的合并文件中,最终关闭三个文件。

代码示例:

with open("file1.txt", "r") as file1, open("file2.txt", "r") as file2, open("merged_file.txt", "a") as merged_file:
    for line in file1:
        merged_file.write(line)
    for line in file2:
        merged_file.write(line)
  1. 对比两个文件的内容

可以使用with open语句按行读取两个文件,在每一行进行比较,如果不同就输出不同行的行数和行内容。如果两个文件长度不同,那么在对比时会出现IndexError,可以在捕获这个异常的情况下输出“文件长度不同”。

代码示例:

with open("file1.txt", "r") as file1, open("file2.txt", "r") as file2:
    try:
        for i, (line1, line2) in enumerate(zip(file1, file2)):
            if line1 != line2:
                print("Line {} in file1 is different from line {} in file2".format(i+1, i+1))
                print("File1: {}".format(line1.rstrip()))
                print("File2: {}".format(line2.rstrip()))
    except IndexError:
        print("Files have different lengths")
  1. 读取Excel内容并结构化

可以使用openpyxl库读取Excel文件,然后逐行读取每个工作表中的数据,并将数据存储在一个列表中。最终返回一个字典,字典的键为工作表名称,值为由数据组成的列表。

代码示例:

from openpyxl import load_workbook

def read_excel(file_path):
    workbook = load_workbook(file_path)
    data = {}
    for sheet_name in workbook.sheetnames:
        sheet = workbook[sheet_name]
        rows = []
        for row in sheet.iter_rows():
            row_data = []
            for cell in row:
                row_data.append(cell.value)
            rows.append(row_data)
        data[sheet_name] = rows
    return data
  1. 统计目录下指定大小的文件并返回集合

可以使用os库和os.path模块中的函数,遍历目录下的所有文件,判断文件大小是否符合要求,并将符合要求的文件路径加入一个集合中返回。

代码示例:

import os

def find_files_by_size(start_dir, size):
    files = set()
    for root, dirs, filenames in os.walk(start_dir):
        for filename in filenames:
            file_path = os.path.join(root, filename)
            file_size = os.path.getsize(file_path)
            if file_size == size:
                files.add(file_path)
    return files
  1. 快速替换文件中指定字符

可以使用with open语句以读写模式打开文件,在每一行查找指定字符并用新的字符替换,最终关闭文件。

代码示例:

with open("file.txt", "r+") as file:
    lines = file.readlines()
    file.seek(0)
    for line in lines:
        new_line = line.replace("old", "new")
        file.write(new_line)
    file.truncate()

你可能感兴趣的:(python,开发语言)