问题遇到的现象和发生背景
单独编辑csv文件后运行不成功
问题相关代码,请勿粘贴截图
import sys,os
#定义操作列表
ops = ['查询员工工资','修改员工工资','增加新员工记录','删除员工信息','查看全部员工信息','汇总统计','退出']
info = {}
def get_info():
#读取文件得到员工信息
global info
with open('info.csv',mode='r',encoding='utf-8') as f_r:
for line in f_r:
line = line.rstrip('\n')
if line:
name = line.split(' ')[0]
slary = line.split(' ')[1]
info[name] ={
'name':'%s'%name,
'slary':'%s'%slary,
'other':''
}
#定义写操作函数
def write(name,slary):
with open('info.csv', mode='a+', encoding='utf-8') as f_w:
f_w.write('\n%s %s'%(name,slary))
#定义修改员工信息函数
def replace(old_name,new_name,old_slary,new_slary):
f_r = open('info.csv',mode='r',encoding='utf-8')
for line in f_r:
line = line.strip()
if old_name in line:
line = line.replace(old_name,new_name)
line = line.replace(old_slary,new_slary)
f_w.write(line + '\n')
f_r.close()
f_w.close()
while True:
get_info()
##打印操作菜单
for key,ops_lists in enumerate(ops):
print(key,ops_lists,)
select = input("请选择操作序号:")
if select.isdigit():
pass
else:
print("请输入数字")
continue
if select.startswith('0'):
input1 = input("请输入员工名字:")
print("%s的工资是:%s" %(input1,info[input1]['slary']))
continue
elif select.startswith('1'):
input1 = input("请输入修改员工的名字:")
print("%s现在的信息是:名字:%s,工资:%s"%(input1,info[input1]['name'],info[input1]['slary']))
input2 = input("名字修改为:")
input3 = input("工资修改为:")
replace(input1, input2,info[input1]['slary'], input3)
os.remove('info.csv')
# os.rename('info1.csv','info.csv')
print("员工信息修改成功")
get_info()
continue
elif select.startswith('2'):
input1 = input("请输入增加员工的名字:")
input2 = input("请输入增加员工的工资:")
write(input1,input2)
print("新增员工信息成功")
get_info()
continue
elif select.startswith('3'):
input1 = input("请输入删除员工的名字:")
with open("info.csv","r",encoding="utf-8")as f:
lines=f.readlines()
print(lines)
with open("info.csv", "w", encoding="utf-8")as f_w:
for line in lines:
if"input"in line:
get_info()
continue
elif select.startswith('4'):
import pandas as pd
data = pd.read_csv('info.csv')
print(
data)
get_info()
continue
elif select.startswith('6'):
print("退出成功")
sys.exit(1)
运行结果及报错内容
更改csv内容后显示超出范围什么的
我的解答思路和尝试过的方法
把csv文件清空内容后重新加就可以了
我想要达到的结果
因为用代码添加的没有表头,也不是一个格子一个数据,所以想问问大家,这个需要怎么实现 或者怎么才能直接更换csv文件不报错 csv文件名:info.csv
这个是我百度到的代码,加了加东西,但是就是实现不了要的效果,另外,想删除一行的时候却是把整个内容都删除了,有人可以解答一下吗