python os模块获取文件路径

4 篇文章 0 订阅
本文介绍了如何使用os模块获取上一级目录、当前路径和文件名,以及通过正则表达式进行字符串规范化。此外,还展示了如何利用pandas根据文件名前缀合并CSV文件。
摘要由CSDN通过智能技术生成

1、# 获取当前工作目录的上一级目录 dir_path = os.path.dirname(os.path.abspath('.'))

2、获取当前路径:

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

# 获取程序所在目录
dir_path = os.path.dirname(script_path)

3、获取当前路径的文件名:file_name = os.path.basename(os.getcwd())
获取当前路径下所有文件名:file_names = os.listdir(os.getcwd())

4、字符串正则化
字符串正则化(string normalization)是指将不同尽管在表意上相同的字符串转换成规范的标准形式的过程。
Python中可以使用re模块实现字符串正则化。

具体步骤如下:

导入re模块:import re
定义正则表达式规则:pattern = re.compile(r’正则表达式’)
使用sub函数进行字符串正则化:new_string = re.sub(pattern, replacement, old_string)
其中,r’正则表达式’是用于匹配字符串的正则表达式,replacement是要替换的内容,old_string是要正则化的字符串,得到的新字符串为new_string。

代码:

import re
old_string = 'abc123def456'
pattern = re.compile(r'\d')
new_string = re.sub(pattern, '#', old_string)
print(new_string)

5、获取当前程序的文件名(py文件名):filename = os.path.basename(__file__)
6、python根据文件夹下文件名进行分类,将具有相同部分的数据进行整合输出。
要求:文件夹中有1_2019.csv,1_2020.csv,2_2019.csv,2_2020.csv等文件,现在想根据1和2,将1_2019.csv,1_2020.csv合并输出,2_2019.csv,2_2020.csv合并输出成新的dataframe文件1_merge.csv和2_merge.csv。
代码:

import glob
import pandas as pd

# 获取所有csv文件的路径
files = glob.glob('/path/to/files/*.csv')

# 根据前缀将文件路径分组
file_groups = {}
for file in files:
    prefix = file.split('/')[-1].split('_')[0]
    if prefix not in file_groups:
        file_groups[prefix] = []
    file_groups[prefix].append(file)

# 遍历每组文件,将它们合并为一个DataFrame对象
for prefix, files in file_groups.items():
    dfs = []
    for file in files:
        df = pd.read_csv(file)
        dfs.append(df)
    merged_df = pd.concat(dfs, axis=0)
        
    # 将合并后的DataFrame保存到文件中
    output_file = f"{prefix}_merge.csv"
    merged_df.to_csv(output_file, index=False)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值