python字符串

python爬虫执行js代码-execjs

ε祈祈猫儿з 提交于 2019-11-26 19:05:57
一.安装模块 pip install PyExecJS execjs会自动使用当前电脑上的运行时环境(建议用nodejs,与Phantomjs) 二.简单的使用 import execjs js_obj = execjs.compile('js字符串') js_obj.call('js字符串中方法',参数) 三.js字符串中模拟浏览器环境 即导入 document 与 window 对象 一.安装依赖 npm install jsdom 二.导入包 js_obj = execjs.compile('js字符串',cwd='node_modules') 三.js字符串中添加抬头 const jsdom = require("jsdom"); const { JSDOM } = jsdom; const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`); window = dom.window; document = window.document; XMLHttpRequest = window.XMLHttpRequest; 四.其它方案 使用PhantomJS之前,需要下载它的驱动,然后放下Python代码统一目录下。对之前的Python代码也进行修改: import execjs import os os.environ[

【面试题】找出一个字符串中第一个只出现一次的字符的位置

 ̄綄美尐妖づ 提交于 2019-11-26 18:29:23
问题:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 解答:可以用HashMap统计每个字符对应的次数,然后再遍历这个map找出第一个。Java代码如下: public int FirstNotRepeatingChar(String str) { if (str == null || str.length() == 0) { return -1; } int length = str.length(); HashMap<Character, Integer> map = new HashMap<>(); for (int i = 0 ; i < length; i++) { char c = str.charAt(i); if (map.containsKey(c)) { map.put(c, map.get(c) + 1); } else { map.put(c, 1); } } for (int i = 0; i < length; i++) { char c = str.charAt(i); if (map.get(c) == 1) { return i; } } return -1; } Python代码如下: # -*- coding:utf-8 -*- class

python-字符串常用方法

不羁的心 提交于 2019-11-26 18:07:23
字符串常用方法:    name = 'xiaoming.li' print(name.count('i')) #找某个元素出现的次数 print(name.index('o')) #找下标 3 Python split() 通过指定分隔符 对字符串进行切片 ,如果参数 num 有指定值,则分隔 num+1 个子字符串,注意: 默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。   tr = "Line1-abcdef \nLine2-abc \nLine4-abcd";   print str.split(); # 以空格为分隔符,包含 \n   print str.split(' ', 1 ); # 以空格为分隔符,分隔成两个   结果:   ['Line1-abcdef', 'Line2-abc', 'Line4-abcd']   ['Line1-abcdef', '\nLine2-abc \nLine4-abcd'] 4 python strip() 方法用于移除字符串头尾指定的字符( 默认为空格或换行符 )或字符序列,注意:该方法 只能删除开头或者结尾的字符 ,不能删除删除中间部分    的字符:  4.1 去除首尾字符:     str1 = "00003210Runoob012300000";     print(str1.strip('0'));#

python:SyntaxError: EOL while scanning string literal 字符串不能以反斜杠结束

流过昼夜 提交于 2019-11-26 17:56:19
代码如下 str_a='D:\cjnProject\pack'+ '\' 运行结果: SyntaxError: EOL while scanning string literal 意思是:字符串不能以反斜杠结束 那为什么字符串不能以反斜杠结束呢?字符串一行显示不下时,可以用反斜杠分多行显示,所以/不能马上接字符串结束的引号 str_b = '1'+\ '2' 那如果需要在路径后跟反斜杠,怎么来表示呢?可以使用//,也表示\ str_a='D://cjnProject//pack'+ '//' 来源: https://blog.csdn.net/qq_31931797/article/details/98996105

python 函数

只谈情不闲聊 提交于 2019-11-26 17:17:56
内置函数 python 内置函数有很多,这里挑一部分介绍一下 abs() 获取绝对值,参数为数字 all() 参数为一个可迭代对象,判断这个可迭代对象的所有元素都是True。 除了0,None,空,False 其他都是True any() 参数为一个可迭代对象,判断这个可迭代对象的所有元素都是False。 bin() 返回一个整数 int 或者长整数 long int 的二进制表示。 bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。 python range() 函数可创建一个整数列表 bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。 callable() 函数用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。 cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符(既对应的 ASCII 字符)。 unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符

python 字符串常用方法

依然范特西╮ 提交于 2019-11-26 16:20:35
name = 'xiaogou.jpg'print(name.count('i')) #找某个元素出现的次数print(name.index('A')) #找下标print(name.find('A')) #找下标print(name.strip('.')) #方法只能删除开头或是结尾的字符,不能删除中间部分的字符print(name.rstrip()) #默认去掉换行符和右边的空格print(name.lstrip()) #默认去掉换行符和左边的空格print(name.startswith('xiaogou')) #判断是否以xx开头print(name.endswith('.jpg')) #判断是否以xxx结尾print(name.isdigit()) #判断这个字符串里面是不是都是整数#这几个方法有点印象就行print(name.islower()) #判断这个字符串是不是小写print(name.isupper()) #判断这个字符串是不是大写print(name.isspace()) #判断是否为空格print(name.isalnum()) #只要字符串里面没有特殊字符就返回true name = "AAA¥"false name = "AAA"trueprint(name.isalpha()) #里面如果只有中文或者字母的话,返回true name = "正

第4章:文本处理

蹲街弑〆低调 提交于 2019-11-26 16:17:46
1.字符串常量 1).字符串是不可变的有序集合 2).字符串函数 3).使用Python分析Apache的访问日志 4).字符串格式化 2.正则表达式 1).利用re库处理正则表达式 2).常用的re方法 3).案例:获取HTML页面中的所有超链接 3.字符集编码 1).UTF8编码 2).Python2和Python3中的Unicode 4.Jiaja2模板 1).语法块 2).Jinja2的继承和Super函数 来源: https://www.cnblogs.com/allenhu320/p/11326342.html

递归

有些话、适合烂在心里 提交于 2019-11-26 15:57:45
问题一: 输入正整数n,例如n=4 返回 4+3+2+1 也就是10 def rec_sum(n): if n == 1: return 1 else: return n + rec_sum(n-1) rec_sum(6) 21 问题二: 输入正整数n,例如4321 返回4+3+2+1 也就是10 def sum_func(n): if (n < 10): return n else: return n%10 + sum_func(n//10) sum_func(4321) 10 问题三: 输入 短语字符串 和 单词列表 将字符串分割并转换为 出现的单词列表 例如: 字符串为’ilovedogsJohn’ 备选单词列表为 ‘i’ ‘am’ ‘a’ ‘dogs’ ‘lover’ ‘love’ ‘John’ 返回答案:‘i’ ‘love’ ‘dogs’ ‘John’ phrase = 'ilovedogsJohn' list_of_words = ['i', 'am', 'a', 'dogs', 'lover', 'love', 'John'] #这段代码暂时只能匹配完全分割的字符串,对于部分分割还存在问题, #而且对于单词列表中出现的,例如dogs,如果单词列表中有单词do,也会匹配出来 def word_split(phrase, list_of_words, output

第五章 模块之 shtil 、 json / pickle、importlib、collections

感情迁移 提交于 2019-11-26 14:39:15
5.8 shtil 高级的 文件、文件夹、压缩包 处理模块 shutil.rmtree 删除目录 import shutilshutil.rmtree(path) shutil.move 重命名;移动文件 import shutilshutil.move('test','ttt') shutil.make_archive 压缩文件夹 import shutil​shutil.make_archive('cade\asd','zip',r'E:\Python_WorkSpace\day016 模块\abc') shutil.unpack_archive 解压文件 import shutil​shutil.unpack_archive('abc.zip',extract_dir=r'E:\Python_WorkSpace\day016 模块\abc',format='zip') # 练习# 1.压缩lizhongwei文件夹 zip# 2.放到到 code 目录(默认不存在)# 3.将文件解压到D:\x1目录中。​import osimport shutilfrom datetime import datetimectime = datetime.now().strftime('%Y-%m-%d-%H-%M-%S') # 将当前时间转换成字符串​if not os.path

json.dumps()包装中文字符串

China☆狼群 提交于 2019-11-26 13:06:48
开发环境 系统: ubuntu18.04 系统编码: $LANG = en_US.UTF-8 python解释器版本: Python 3.6.7 乱码现场 使用 json.dumps() 将 dict 转化为 json 数据的时候, 中文会显示为对应的 unicode 编码形式 demo: param = { "code": "0", "message": "中文内容" } param1 = json.dumps(param, ensure_ascii=False) param2 = json.dumps(param) print(param1) print(param2) 输出内容: param1: {"code": "0", "message": "中文内容"} param2: {"code": "0", "message": "\u4e2d\u6587\u5185\u5bb9"} 并非乱码, 其实是 unicode 的16进制表示形式. 分析 区别在于 ensure_ascii=False 这个参数, 看下 json.dumps() 的方法的源码: def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None,