fish_file 文件处理函数包

fish_file.check_sub_path_create(sub_path) 检查当前路径下的某个子路径是否存在, 不存在则创建;
fish_file.get_abs_filename_with_sub_path(…) 生成当前路径下一级路径某文件的完整文件名;
fish_file.get_file_encoding(file_path) 获取给定文件的编码;
fish_file.find_files(path[, exts]) 查找路径下的文件,返回指定类型的文件列表

fish_file 包含的是文件、路径处理相关的函数。

各类相对绝对文件的路径处理等都是开发时候经常需要处理的问题,fish_file 中的函数试图简化这些操作。

fish_file.check_sub_path_create(sub_path)

检查当前路径下的某个子路径是否存在, 不存在则创建;

Param:
  • sub_path: (string) 下一级的某路径名称
Returns:

  • 返回类型 (tuple),有两个值
  • True: 路径存在,False: 不需要创建
  • False: 路径不存在,True: 创建成功

举例如下:

print('--- check_sub_path_create demo ---')
# 定义子路径名称
sub_path = 'demo_sub_dir'
# 检查当前路径下的一个子路径是否存在,不存在则创建
print('check sub path:', sub_path)
result = check_sub_path_create(sub_path)
print(result)
print('---')

输出结果:

--- check_sub_path_create demo ---
check sub path: demo_sub_dir
(True, False)
---
fish_file.find_files(path, exts=None)

查找路径下的文件,返回指定类型的文件列表

Param:
  • path: (string) 查找路径
  • exts: (list) 文件类型列表,默认为空
Returns:

  • files_list: (list) 文件列表

举例如下:

print('--- find_files demo ---')
path1 = '/root/fishbase_issue'
all_files = find_files(path1)
print(all_files)
exts_files = find_files(path1, exts=['.png', '.py'])
print(exts_files)
print('---')

执行结果:

--- find_files demo ---
['/root/fishbase_issue/test.png', '/root/fishbase_issue/head.jpg','/root/fishbase_issue/py/man.png'
['/root/fishbase_issue/test.png', '/root/fishbase_issue/py/man.png']
---
fish_file.get_abs_filename_with_sub_path(sub_path, filename)

生成当前路径下一级路径某文件的完整文件名;

Param:
  • sub_path: (string) 下一级的某路径名称
  • filename: (string) 下一级路径的某个文件名
Returns:

  • 返回类型 (tuple),有两个值,第一个为 flag,第二个为文件名,说明见下
  • flag: (bool) 如果文件存在,返回 True,文件不存在,返回 False
  • abs_filename: (string) 指定 filename 的包含路径的长文件名

举例如下:

print('--- get_abs_filename_with_sub_path demo ---')
# define sub dir
path_name = 'sub_dir'
# define not exists file
filename = 'test_file.txt'

abs_filename = get_abs_filename_with_sub_path(path_name, filename)
# return False and abs filename
print(abs_filename)

# define exists file
filename = 'demo.txt'
abs_filename = get_abs_filename_with_sub_path(path_name, filename)
# return True and abs filename
print(abs_filename)
print('---')

输出结果:

--- get_abs_filename_with_sub_path demo ---
(False, '/Users/****/Documents/dev_python/fishbase/demo/sub_dir/test_file.txt')
(True, '/Users/****/Documents/dev_python/fishbase/demo/sub_dir/demo.txt')
---
fish_file.get_file_encoding(file_path)

获取给定文件的编码;

Param:
  • file_path: (string) 文件的完整路径
Returns:

  • file_encoding (string),文件编码

举例如下:

print('--- get_file_encoding demo ---')
result = get_file_encoding(__file__)
print(result)
print('---')

输出结果:

--- get_file_encoding demo ---
utf-8
---