任务要求:批量修改csv文件列数据,并存储为新csv文件
1.读取csv文件
import pandas as pd
import os
2.定义csv文件处理函数
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]))
input_numeric.at[i]=output
print(input_numeric)
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)
l=0
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)