python读取excel xls文件 xls文件写入txt
实列说明
手上有几万数据的业百科网站长尾关键词xls文件。我只需要excel其中某一列(标题)的数据。并将每一个标题的"-业百科"字符串去掉。
处理方法:
需要用python读xls文件"标题"列数据,写入列表,再将列表存入txt文件,再读取txt文件处理标题数据存入字典。要问我为啥做的这么麻烦,我不知道啊,本来直接读取xls文件就可以处理字符的问题了,死活搞不定,只能曲线救国了。。。
实列代码:
import pandas as pd # 读取Excel表格中某列所有值,存入字典 def excel_one_line_to_list(xlsFileName, strs, cols): # strs 为 excle单元格中需要包含的字符 usecols为excel第几列 df = pd.read_excel('./' + xlsFileName + '.xls', usecols=[cols], names=None) # 读取项目名称列,不要列名 df_li = df.values.tolist() result = [] for s_li in df_li: if str(s_li[0]).find(strs) != -1: result.append(s_li[0]) a = result a = [a_ for a_ in a if a_ == a_] # 这句去掉Excel中空的单元格数据 return result # 将字典写入txt文件 def list_to_txt(fileName, lst): with open('./' + fileName + '.txt', 'w', encoding='utf-8') as fp: for l in lst: fp.write(l + '\n') # 将txt文件内容写入字典 def txt_to_list(fileName, strs): # strs为要去掉的字符串 with open('./' + fileName + '.txt', 'r', encoding='utf-8') as f: dic = [] for line in f.readlines(): line = line.strip('\n') # 去掉换行符\n line = line.strip(strs) b = line.split(' ') # 将每一行以空格为分隔符转换成列表 dic.append(b[0]) return dic if __name__ == '__main__': list_to_txt('业百科长尾关键词', excel_one_line_to_list('y', '业百科', 20)) print(txt_to_list('业百科长尾关键词', '-业百科'))