Please enable Javascript to view the contents

Python 常用代码片段 1

 ·  ☕ 1 分钟

1 获取文件名列表

import os
names = os.listdir('somedir')

如果要查找特定后缀名文件,你可能会考虑使用 glob 或 fnmatch 模块。比如:

import glob
pyfiles = glob.glob('somedir/*.py')

from fnmatch import fnmatch
pyfiles = [name for name in os.listdir('somedir')
            if fnmatch(name, '*.py')]

当然现在最好的还是 pathlib:

from pathlib import Path
all_py_files = Path.cwd().rglob('*.py');

refs:5.13 获取文件夹中的文件列表 — python3-cookbook 3.0.0 文档

2 修改文件名后缀

import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")

或者

from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))

refs: rename - Changing file extension in Python - Stack Overflow

3 判断字符串是否包含子串

【5种方法】Python判断字符串是否包含子串 – 码中人

4 简易爬虫

resource = urllib.request.urlopen(an_url)
content =  resource.read().decode(resource.headers.get_content_charset())

5 删除多层目录下多个文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import os
import glob

files = glob.glob('/tmp/**/*.txt', recursive=True)

for f in files:
    try:
        os.remove(f)
    except OSError as e:
        print("Error: %s : %s" % (f, e.strerror))

6 删除特定目录(以及其子目录和文件)

递归删除目录下所有内容还是比较麻烦,可以使用 shutil.rmtree() 函数。

shutil.rmtree() 表示递归删除文件夹下的所有子文件夹和子文件。

1
2
3
4
5
6
7
8
9
from pathlib import Path
import glob
import shutil

cwd = Path(__file__).resolve().parent.joinpath('some_dir')

for path in glob.glob(f'{cwd}/*/**/', recursive=True):
    if 'some_dir_string' in path:
        shutil.rmtree(path,ignore_errors=True)

7 返回"标题化"的字符串

就是说所有单词的首字母都转化为大写。我还一直以为这个方法叫 capitalize。

str = "javascript is the best PL....wow!!!"
print (str.title())
Javascript Is The Best Pl....Wow!!!

8 写入文件

file = open('test.html','w',encoding="utf-8")
file.write(contents)
分享

码中人
作者
码中人
Web Developer