自学内容网 自学内容网

【python-快速API】读写文件、目录常用命令

文件

1. 读取文本文件

# 读取整个文件内容
with open('text.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

# 逐行读取文件内容
with open('text.txt', 'r', encoding='utf-8') as file:
    for line in file:
        print(line.strip())  # 使用 strip() 去除每行末尾的换行符

2. 写入文本文件

# 写入整个文件内容
with open('output.txt', 'w', encoding='utf-8') as file:
    file.write('Hello, World!\n')
    file.write('This is a test.\n')

# 使用 writelines 写入多行内容
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
with open('output.txt', 'w', encoding='utf-8') as file:
    file.writelines(lines)

3. 追加内容到文件

# 追加内容到文件
with open('output.txt', 'a', encoding='utf-8') as file:
    file.write('This is an appended line.\n')

4. 读取二进制文件

# 读取二进制文件
with open('image.png', 'rb') as file:
    binary_data = file.read()
    # 处理二进制数据
    print(binary_data[:10])  # 打印前10个字节

5. 写入二进制文件

# 写入二进制文件
data = b'This is some binary data'
with open('binary_file.bin', 'wb') as file:
    file.write(data)

6. 读取和写入 CSV 文件

import csv

# 读取 CSV 文件
with open('data.csv', 'r', newline='', encoding='utf-8') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

# 写入 CSV 文件
data = [
    ['Name', 'Age', 'City'],
    ['Alice', '30', 'New York'],
    ['Bob', '25', 'Los Angeles']
]
with open('output.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerows(data)

7. 读取和写入 JSON 文件

import json

# 读取 JSON 文件
with open('data.json', 'r', encoding='utf-8') as file:
    data = json.load(file)
    print(data)

# 写入 JSON 文件
data = {
    'name': 'Alice',
    'age': 30,
    'city': 'New York'
}
with open('output.json', 'w', encoding='utf-8') as file:
    json.dump(data, file, indent=4)

这些例子涵盖了 Python 中常见的文件读写操作,包括文本文件、二进制文件、CSV 文件和 JSON 文件。希望这些示例对你有所帮助!

目录

在 Python 中,操作目录(文件夹)是非常常见的任务,包括创建目录、删除目录、列出目录内容、遍历目录树等。osos.path 模块提供了许多用于目录操作的函数。以下是一些常用的目录操作示例:

1. 定位根目录-环境变量

import os

# 获取当前脚本的绝对路径
current_file_path = os.path.abspath(__file__)

# 获取当前脚本所在的目录
current_dir = os.path.dirname(current_file_path)

# 固定根目录
root_dir = os.path.join(current_dir, '..')  # 假设根目录是当前目录的上一级
root_dir = os.path.abspath(root_dir)

# 设置环境变量
os.environ['PROJECT_ROOT'] = root_dir

print(f"根目录: {os.environ['PROJECT_ROOT']}")

# 读取环境变量
root_dir = os.getenv('PROJECT_ROOT')

if root_dir is None:
    raise ValueError("环境变量 PROJECT_ROOT 未设置")

print(f"根目录: {root_dir}")

2. 获取当前工作目录

import os

current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")

3. 切换工作目录

import os


os.chdir('/path/to/new/directory')
print(f"新的工作目录: {os.getcwd()}")

4. 创建目录

import os


# 创建单个目录
os.mkdir('new_directory')

# 创建多级目录
os.makedirs('new_directory/subdirectory')

5. 删除目录

import os


# 删除单个空目录
os.rmdir('new_directory')

# 删除多级目录及其内容
import shutil
shutil.rmtree('new_directory')

6. 列出目录内容

import os


# 列出当前目录的所有文件和子目录
files_and_dirs = os.listdir('.')
print(files_and_dirs)

# 列出当前目录的所有文件
files = [f for f in os.listdir('.') if os.path.isfile(f)]
print(files)

# 列出当前目录的所有子目录
dirs = [d for d in os.listdir('.') if os.path.isdir(d)]
print(dirs)

7. 遍历目录树

import os


# 使用 os.walk 遍历目录树
for root, dirs, files in os.walk('.'):
    print(f"目录: {root}")
    print(f"子目录: {dirs}")
    print(f"文件: {files}")

8. 检查文件或目录是否存在

import os


# 检查文件是否存在
if os.path.exists('file.txt'):
    print("文件存在")
else:
    print("文件不存在")

# 检查目录是否存在
if os.path.exists('directory'):
    print("目录存在")
else:
    print("目录不存在")

9. 获取文件或目录的绝对路径

# 获取文件的绝对路径
import os


abs_path = os.path.abspath('file.txt')
print(f"文件的绝对路径: {abs_path}")

# 获取目录的绝对路径
abs_dir_path = os.path.abspath('directory')
print(f"目录的绝对路径: {abs_dir_path}")

10. 获取文件或目录的大小

import os


# 获取文件的大小(以字节为单位)
file_size = os.path.getsize('file.txt')
print(f"文件大小: {file_size} 字节")

# 获取目录的大小(递归计算)
def get_directory_size(directory):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(directory):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            total_size += os.path.getsize(fp)
    return total_size

dir_size = get_directory_size('directory')
print(f"目录大小: {dir_size} 字节")

11. 重命名文件或目录

import os


# 重命名文件
os.rename('old_name.txt', 'new_name.txt')

# 重命名目录
os.rename('old_directory', 'new_directory')

12. 获取文件或目录的最后修改时间

import os
import time

# 获取文件的最后修改时间
mod_time = os.path.getmtime('file.txt')
print(f"文件最后修改时间: {time.ctime(mod_time)}")

# 获取目录的最后修改时间
mod_dir_time = os.path.getmtime('directory')
print(f"目录最后修改时间: {time.ctime(mod_dir_time)}")

13.递归文件

import os
# 列出所有文件和子目录
for item in os.listdir('./data'):
    print(item)

# 使用glob列出特定文件类型(如所有txt文件)
import glob

txt_files = glob.glob('./**/*.txt', recursive=True)
print(txt_files)

14. 得到当前目录名

from pathlib import Path

# 获取当前工作目录的完整路径
current_dir = Path.cwd()

# 获取当前工作目录的名称
current_dir_name = current_dir.name

print(f"当前目录名: {current_dir_name}")

原文地址:https://blog.csdn.net/qq_39211165/article/details/143503080

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!