批量修改csv文件列数据,并存储为新csv文件

任务要求:批量修改csv文件列数据,并存储为新csv文件

1.读取csv文件

#pandas库用来处理csv文件,os库用来批量读取文件
import pandas as pd
import os

2.定义csv文件处理函数

#input_file_path为处理前文件存储路径,input_numeric为需要处理的固定列名,output_file_path为处理后文件存储路径,m,n为列中字符串切片位置
def extract_all(input_file_path,input_numeric,output_file_path,m,n):
    df = pd.read_csv(input_file_path,encoding='utf-8')
    print(df)
    input_numeric =df[input_numeric]
    print(input_numeric)
    
    l = m+n
    for i in range(0,len(input_numeric)):
        output=str(input_numeric[i])
        if len(output)>l:
            output=output.replace(output[m:-n],'*'*len(output[m:-n]))
        else:
            output=output.replace(output[:-1],'*'*len(output[:-1]))
    #替换某一行、某一列使用.at
        input_numeric.at[i]=output
    print(input_numeric)
    #存储为新文件,index=False表示不添加索引列
	df.to_csv(output_file_path,index=False)

3.批量处理文件夹中的文件

x=0
COOKED_FOLDER = './处理前'  # 文件夹的地址
dirs = os.listdir(COOKED_FOLDER)
df=pd.read_excel('file.xlsx')
# 输出所有文件和文件夹
for file in dirs:
    file=file[:-4]
    print(file)
    input_file_path='处理前/{}.csv'.format(file)
    output_file_path='处理后/{}.csv'.format(file)
    # print(input_file_path)
    l=0
    # print(len(df['A0']))
    for i in range(len(df['A0'])):
        if df['A0'][i]==file:
            l+=1
            x+=1
        print(l)
    if x<=l:
        for i in range(0,l):
            input_numeric=df['A1'][i]
            m=df['A2'][i]
            n=df['A3'][i]
            extract_all(input_file_path, input_numeric, output_file_path, m, n)
            input_file_path='处理后/{}.csv'.format(file)
    else:
        print(x)
        for i in range(0,l):
            input_numeric=df['A1'][x+i-l]
            print(input_numeric)
            m=df['A2'][x+i-l]
            n=df['A3'][x+i-l]
            extract_all(input_file_path, input_numeric, output_file_path, m, n)
            input_file_path='处理后/{}.csv'.format(file)
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
批量删除CSV文件的指定可以通过以下几个步骤实现: 1. 找到要处理的CSV文件,并打开它。 2. 读取CSV文件的内容,并确定要删除的号或名。 3. 创建一个空白的CSV文件,用于存储删除指定后的结果。 4. 遍历原始CSV文件的每一行,将不需要删除的内容写入到CSV文件中。 5. 关闭原始CSV文件CSV文件。 具体代码实现如下: ```python import csv import os def remove_columns(csv_path, columns_to_delete): with open(csv_path, 'r') as file: csv_reader = csv.reader(file) header = next(csv_reader) # 获取CSV文件的头部 column_idxs = [] # 根据名找到对应的索引 if isinstance(columns_to_delete, list): for column_name in columns_to_delete: if column_name in header: column_idxs.append(header.index(column_name)) else: if columns_to_delete in header: column_idxs.append(header.index(columns_to_delete)) # 创建结果CSV文件 result_csv_path = os.path.splitext(csv_path)[0] + "_result.csv" with open(result_csv_path, 'w', newline='') as result_file: csv_writer = csv.writer(result_file) csv_writer.writerow([header[i] for i in range(len(header)) if i not in column_idxs]) # 将不需要删除的写入文件 for row in csv_reader: csv_writer.writerow([row[i] for i in range(len(row)) if i not in column_idxs]) print("指定已从CSV文件成功删除,并保存为:" + result_csv_path) # 示例调用 csv_file_path = "path/to/your/csv/file.csv" columns_to_remove = ["名1", "名2"] remove_columns(csv_file_path, columns_to_remove) ``` 以上代码可以根据提供的表或名,删除CSV文件中的指定,并将结果保存为文件。要使用该代码,只需将`csv_file_path`变量更改为要处理的CSV文件的路径,并使用`columns_to_remove`变量设置要删除的的名称。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值