内容目录
feather 转csv
安装python
略
安装python依赖
pip3 install pandas
pip3 install pyarrow
新建feather2csv.py
拷贝如下代码保存
import os
import pandas as pd
import argparse
def convert_feather_to_csv(file_name="all"):
"""
将指定的 .feather 文件或当前目录下所有 .feather 文件转换为同名 .csv 文件。
参数:
file_name (str): .feather 文件名或 "all"。
如果为 "all"(默认值),则转换当前目录下所有 .feather 文件。
"""
current_directory = os.getcwd()
if file_name == "all":
# 转换当前目录下所有 .feather 文件
files = [f for f in os.listdir(current_directory) if f.endswith('.feather')]
if not files:
print("当前目录下没有 .feather 文件。")
return
print(f"找到 {len(files)} 个 .feather 文件,开始转换...")
for file in files:
file_path = os.path.join(current_directory, file)
_convert_single_file(file_path)
print("所有文件转换完成。")
else:
# 转换指定的文件
if not file_name.endswith('.feather'):
print("文件格式错误,请提供 .feather 文件。")
return
file_path = os.path.join(current_directory, file_name)
if not os.path.isfile(file_path):
print(f"文件 {file_name} 不存在。")
return
_convert_single_file(file_path)
def _convert_single_file(file_path):
"""
将单个 .feather 文件转换为同名 .csv 文件。
参数:
file_path (str): .feather 文件的路径。
"""
if not file_path.endswith('.feather'):
print(f"跳过非 .feather 文件: {file_path}")
return
# 读取 .feather 文件
try:
df = pd.read_feather(file_path)
except Exception as e:
print(f"读取 .feather 文件时出错 ({file_path}): {e}")
return
# 构造 .csv 文件路径
csv_path = os.path.splitext(file_path)[0] + '.csv'
# 保存为 .csv 文件
try:
df.to_csv(csv_path, index=False)
print(f"文件已成功转换并保存为: {csv_path}")
except Exception as e:
print(f"保存 .csv 文件时出错 ({file_path}): {e}")
if __name__ == "__main__":
# 设置命令行参数解析
parser = argparse.ArgumentParser(description="将 .feather 文件转换为 .csv 文件")
parser.add_argument(
"-file_path",
type=str,
default="all",
help="指定要转换的 .feather 文件路径,留空则转换当前目录下所有文件"
)
# 解析参数
args = parser.parse_args()
# 调用转换函数
convert_feather_to_csv(args.file_path)
调用执行转换
python3 feather2csv.py
执行后所在目录下所有feather文件被转换,自动保存 cvs 在同目录下
python3 feather2csv.py -file_path your_file.csv
执行后指定文件被转换,自动保存 cvs文件在feather文件目录下
csv转feather
也是类似,贴代码:
import os
import pandas as pd
import argparse
def convert_csv_to_feather(file_name="all"):
"""
将指定的 .csv 文件或当前目录下所有 .csv 文件转换为同名 .feather 文件。
参数:
file_name (str): .csv 文件名或 "all"。
如果为 "all"(默认值),则转换当前目录下所有 .csv 文件。
"""
current_directory = os.getcwd()
if file_name == "all":
# 转换当前目录下所有 .csv 文件
files = [f for f in os.listdir(current_directory) if f.endswith('.csv')]
if not files:
print("当前目录下没有 .csv 文件。")
return
print(f"找到 {len(files)} 个 .csv 文件,开始转换...")
for file in files:
file_path = os.path.join(current_directory, file)
_convert_single_file(file_path)
print("所有文件转换完成。")
else:
# 转换指定的文件
if not file_name.endswith('.csv'):
print("文件格式错误,请提供 .csv 文件。")
return
file_path = os.path.join(current_directory, file_name)
if not os.path.isfile(file_path):
print(f"文件 {file_name} 不存在。")
return
_convert_single_file(file_path)
def _convert_single_file(file_path):
"""
将单个 .csv 文件转换为同名 .feather 文件。
参数:
file_path (str): .csv 文件的路径。
"""
if not file_path.endswith('.csv'):
print(f"跳过非 .csv 文件: {file_path}")
return
# 读取 .csv 文件
try:
df = pd.read_csv(file_path)
except Exception as e:
print(f"读取 .csv 文件时出错 ({file_path}): {e}")
return
# 构造 .feather 文件路径
feather_path = os.path.splitext(file_path)[0] + '.feather'
# 保存为 .feather 文件
try:
df.to_feather(feather_path)
print(f"文件已成功转换并保存为: {feather_path}")
except Exception as e:
print(f"保存 .feather 文件时出错 ({file_path}): {e}")
if __name__ == "__main__":
# 设置命令行参数解析
parser = argparse.ArgumentParser(description="将 .csv 文件转换为 .feather 文件")
parser.add_argument(
"-file_path",
type=str,
default="all",
help="指定要转换的 .csv 文件路径,留空则转换当前目录下所有文件"
)
# 解析参数
args = parser.parse_args()
# 调用转换函数
convert_csv_to_feather(args.file_path)
python csv2feather.py
执行后所在目录下所有csv文件被转换,自动保存 feather 文件在同目录下
python csv2feather.py -file_path your_file.csv
执行后指定文件被转换,自动保存 feather文件在feather文件同目录下
feather格式简介:
http://www.coolpython.net/python_senior/third_module/feather-csv-compare.html
windows的cmd命令行,整理成可执…