【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 中,操作目录(文件夹)是非常常见的任务,包括创建目录、删除目录、列出目录内容、遍历目录树等。os
和 os.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)!