Python出现的问题及相关编程方法总结

fw.write(list2)

TypeError: write() argument must be str, not list

类型转换:str转list与list转str

test_str = "".join(test_list) #使用分割

TypeError: sequence item 0: expected str instance, int found

tr2 = ",".join(str(x) for x in list2)+'
'

至此,上述问题解决***************************************************************************************

对csv文件操作小结

读csv文件

with open('D:/trace analyse/a.csv','rt', encoding="utf-8") as csvfile:
     reader = csv.reader(csvfile)
     next(csvfile) #跳过第一行
     for raw in reader:
         #对每一行处理
csvfile.close()

写csv文件

with open('D:/trace analyse/b.csv','w+',newline='') as wfile:
    writer = csv.writer(wfile)
    for key in dict:
        for value in dict[key]:
            writer.writerow([key, value, dict1.get(key+value)])
wfile.close()

当csv文件没有标题行的时候,对csv的读取可以添加

train = pd.read_csv(file, header=None, names = ['a','b','c'] )

将ndarray写入csv文件

pd_data = pd.DataFrame(np_data,columns=['filename','gender'])
pd_data.to_csv('pd_data.csv')

在一个csv每行末尾添加一列

with open(file,'rt', encoding="utf-8") as csvfile:
    reader = csv.reader(csvfile)
    next(csvfile)
    writefile = open(file,'w+',newline='')
    writer = csv.writer(writefile)
    for raw in reader:
        if raw[0] in dict:
            raw.append(dict[raw[0]])
        writer.writerow(raw)
csvfile.close()
writefile.close()

***************************************************************************************

对txt文件操作小结

fw = open('D:/trace analyse/cputime-serires.txt','a')
fw.write(str2) #这里不能写list类型
fw.close()
fr = open('D:/trace analyse/cputime-serires.txt','r') #按行读取数据
    for str1 in fr.readlines():

***************************************************************************************

 Random使用

random.randint(0,max) #产生一个0-max的整数

***************************************************************************************

 List操作

求list全部元素的总和

sum(list2) #求list2全部元素的总和

对list中的元素执行统一操作

def Submethod(value):
    if value >= 1:
        value -= 1
    return value
list2 = list(map(Submethod,list2))

这种map方式,map中的function没法传递两个参数

map(square, list) #内置函数,对list每个元素求平方
map(lambda x: x ** 2, list) #自定义函数,同样是求平方
map(lambda x, y: x + y, list1, list2) #自定义函数,对两个list操作

这种map方式,对于条件语句不友好

***************************************************************************************

 

原文地址:https://www.cnblogs.com/o-din/p/10723011.html