关于python获取文件名后缀的方法

标准的方法是: >>> os.path.splitext('thefile.jpg')[1] '.jpg' 这样获得的是带点号的后坠,如果不要点号呢?当然可以在结果上继续处理 >>> os.path.splitext('thefile.jpg')[1][1:] 'jpg' 不过有更简便的方法,使用字符串的split方法 >>> 'thefile.jpg'.split('.')[-1] 'jpg'
2022-05-23 22:23 | 阅读 67 次 | 评论 0 条

给 python 加上 end

有强迫症,看见python没有end关键字,就像将倾的大厦,向一边倾斜,缺少对称之美。于是总想着给python加个end。在十几年前听说韩国有程序员给python(整容😁)用注释的方式加end,比如: if True: print("hello") #end 这个思路不错,但是注释前面的#号看着还是不舒服。 又想到用定义一个end变量: if True: print("hello") end = '' 让end等于空字符串,这样前面不用带一个#号了,但后面拖着个小尾巴,还是不舒服。 既然注释和变量都不完美,那么用...
2022-05-23 16:28 | 阅读 34 次 | 评论 0 条

python正则re.sub“替换大文件内容”的坑

可能是由于内存限制,对大文件只能替换前面的一部分,可以使用re.compile突破这种限制 比如: re.sub("abc", "123", largeText, re.S|re.I) 可以改成: match = re.compile("abc", re.S|re.I) match.sub("123", largeText)
2022-05-03 17:38 | 阅读 309 次 | 评论 0 条

vscode开发python时auto import无效的解决办法

在settings.json加入如下配置: "python.analysis.indexing": true
2021-11-10 13:40 | 阅读 562 次 | 评论 0 条

django在生产环境关闭日志的方法

在uwsgi.xml加入下面一项 <disable-logging>true</disable-logging>
2021-10-18 21:44 | 阅读 579 次 | 评论 0 条

Django通过signal(信号)实现对所有的model(模型)删除记录时自动删除FileField、ImageField字段的文件

假设startapp创建的app为app1 在app1中创建一个helpers模块,加入如下代码: from django.db import models from django.db.models.signals import pre_delete from django.dispatch import receiver def bind_delete_signal(model): @receiver(pre_delete, sender=model) def pre_model_delete(sender, **kwargs):...
2021-07-07 17:15 | 阅读 676 次 | 评论 0 条

正则表达式之零宽断言

有时候在使用正则表达式做匹配的时候,我们希望匹配一个字符串,这个字符串的前面或后面需要是特定的内容,但我们又不想要前面或后面的这个特定的内容,(这里的特定内容是指字符串,如果是字符可以用^排除),这时候就需要零宽断言的帮助了。所谓零宽断言,简单来说就是匹配一个位置,这个位置满足某个正则,但是不纳入匹配结果的,所以叫“零宽”,而且这个位置的前面或后面需要满足某种正则。 正预测先行断言 断言自身出现的位置的后面能匹配表达式exp 语法格式 (?=exp) ...
2021-03-28 02:47 | 阅读 514 次 | 评论 0 条

清理未发布的新闻,同时删除附件

bccn_shell进入docker,按向上键一次就会出现 ./manage.py shell ,如果不出现继续按。出现后按回车进入控制台。 from news.models import Article for article in Article.objects.filter(public=False).order_by('id')[0:1000]: article.delete() 一次删1000篇
2019-07-07 00:02 | 阅读 1037 次 | 评论 0 条

Django这个框架比它使用的语言python稳多了

Django诞生于2003年,到现在16年了,一直在稳妥的推进,没飚版本号,在rails如日中天的时候没借鉴rails,一直坚持自己的风格,向前兼容也做得很好。这点比python好,python从2到3的变动好像失去了方向。
2019-01-22 19:09 | 阅读 1410 次 | 评论 0 条

切记,python使用pickle.dumps的时候一定先把unicode给encode('utf-8')成str

pickle.dumps(unicode_draft) #不建议 pickle.dumps(unicode_draft.encode('utf-8')) #建议 直接pickle.dumps(unicode_draft)的时候,保存的是这种形式: V<ul>\u5982\u4f55\u89e3\u6790 pickle.dumps(utf8_str_draft)的时候,保存的是这种形式: S'\xe5\xad\x99\xe9\x91\xa' 一个V,一个S,S后面跟的是单引号包裹的字符串。 -------------------------...
2016-10-30 03:21 | 阅读 9143 次 | 评论 0 条

用apt-get安装uwsgi的问题

有时候用pip 安装 uwsgi因为各种依赖问题装不上,可以用apt-get来装。 apt-get install uwsgi apt-get install uwsgi-plugin-python 不过uwsgi.xml需要加一项 <plugins>python</plugins>
2015-12-21 16:18 | 阅读 2389 次 | 评论 0 条

给django的migrations瘦身

当migrations越来越多的时候执行 makemigrations 和 migrate 就会越来越慢,可以考虑对其瘦身(减少migrations文件的数量),有两种方法: 1、squashmigrations(官方推荐) 此方法将一个app中的多个migration文件合并为一个,详见 http://doc.bccnsoft.com/docs/django-docs-1.7-en/topics/migrations.html#squashing-migrations 2、手动删除migrations文件 步骤: ...
2015-12-06 19:30 | 阅读 5819 次 | 评论 0 条

记django的一个坑:django.db.migrations.loader.BadMigrationError: Migration 0001_squashed_0002_remove_content_type_name in app contenttypes has no Migration class

今天执行djangod的合并迁移的时候运行了: ./manage.py squashmigrations contenttypes 0002 然后再执行迁移命令就出现错误提示: django.db.migrations.loader.BadMigrationError: Migration 0001_squashed_0002_remove_content_type_name in app contenttypes has no Migration class 然后删除了网站所有migrations目录下的文件,清空了django_...
2015-12-06 19:07 | 阅读 4138 次 | 评论 0 条

django-debug-toolbar只对某个用户(管理员)显示的设置方法

网上的一些文章都是介绍只对某个IP显示的,下面的设置是IP无关的(用户账号有关) 1、安装 sudo pip install django-debug-toolbar 2、在 settings.py 的 MIDDLEWARE_CLASSES 项中加入 'debug_toolbar.middleware.DebugToolbarMiddleware', 3、在 settings.py 中加入 def custom_show_toolbar(reques...
2015-11-30 02:37 | 阅读 3467 次 | 评论 0 条

在django中实现类似rails的binding.pry调试功能

rails的binding.pry调试很爽,在刷新网页的时候直接进入代码内部还原现场,直接查看、操作上下文的对象。其实python社区也有相应的实现,以django为例,在代码中插入: import IPython IPython.embed() 以如下代码为例: def lists(request): text = '哈哈嘻嘻12' import IPython //插入这两行 IPython.embed() //插入这两行 return render(request, 'question/lists....
2015-09-05 13:56 | 阅读 3950 次 | 评论 0 条

用selenium python登录网站并抓取登录后的内容

以下代码仅作演示: #!/usr/bin/env python # -*- coding: UTF-8 -*- from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait browser = webdriver.Firefox() browser.set_page_load_timeout(20) # 防止页面加载个没完 browser.get('https://www.zhihu.com/') browser.find_e...
2015-03-08 22:17 | 阅读 17441 次 | 评论 0 条

用selenium+pyquery爬取javascript生成的页面内容

#!/usr/bin/env python # -*- coding: UTF-8 -*- from pyquery import PyQuery as pq from selenium import webdriver browser = webdriver.Firefox() browser.get('http://www.baidu.com/') html = browser.find_element_by_xpath("//*").get_attribute("outerHTML") # 不要用 browser.page_source,那样得到的页面源码不标...
2015-03-08 20:36 | 阅读 8488 次 | 评论 0 条

Arrow: better dates and times for Python(python的时间日期库)

http://crsmithdev.com/arrow/
2014-11-18 10:52 | 阅读 2250 次 | 评论 0 条

ipython的键绑定设置

ipython profile create tmp 用上面的命令创建profile_tmp文件夹(命令行会提示具体的路径), 然后把profile_tmp里面的ipython_config.py移动到profile_default里面, 删除profile_tmp, 打开ipython_config.py,设置 c.TerminalInteractiveShell.readline_parse_and_bind = ['tab: complete', '"\\M-h": backward-char', '"\\M-l"...
2014-06-23 19:42 | 阅读 2222 次 | 评论 0 条

ez_setup.py(setuptools安装工具easy_install)

wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py 安装完成后就可以用easy_install安装python的库了,比如: easy_install pip
2014-03-22 00:09 | 阅读 3338 次 | 评论 0 条
浏览2462621次
文章归档
最新评论