一、文件操作
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Apr 23 20:59:49 2020 @author: root """ import os import fnmatch # example for f_name in os.listdir('/tmp/some_directory'): if fnmatch.fnmatch(f_name, '*.txt'): print (f_name) # 例如,在UNIX shell中使用 mv *.py python_files 移动所有 .py 扩展名 的文件 # 从当前目录到 python_files 。这 * 是一个通配符表示任意数量的字符,*.py # 是一个全模式。Windows操作系统中不提供此shell功能。 # 但 glob 模块在Python中添加了此功能,使得Windows程序可以使用这个特性。 # 这里有一个使用 glob 模块在当前目录下查询所有Python代码文 import glob print (glob.glob('*.py')) for name in glob.glob('*[0-9]*.txt'): print (name) import os # data_file = '/tmp/some_directory/demo1.txt' # if os.path.is_file(data_file): # os.remove(data_file) # else: # print (f'Error: {data_file} not a valid filename') # f = open('/tmp/some_directory/demo1.txt','rb+') # print(f.read()) ##直接打印出来 # print(f.readline()) ##打印第一行 # print(f.readlines()) # print(f.readline(),end='') # print(f.readlines(),end='') # print([line.strip() for line in f.readlines()]) # f.write('python 8888888888') # f.close() import string import random def create_mac(): mac='01-AF-3B' for i in range(3): n=random.sample(string.hexdigits,2) sn='-'+''.join(n).upper() mac+=sn return mac with open('\tmp\some_directory\demo9.txt','w+') as f: for i in range(100): mac=create_mac() print (mac) f.write(mac+'\n') f.close() with open('\tmp\some_directory\demo9.txt') as f: #使用这种文件的打开方式更加简单了,同时可以避免忘记关闭文件的情况 print('9999999999999999',f.read())
在现代Python版本中,可以使用 os.scandir() 和 pathlib.Path 来替代 os.listdir() 。 os.scandir() 在Python 3.5 中被引用,其文档为 PEP 471 。 os.scandir() 调用时返回一个迭代器而不是一个列表。 import os entries = os.scandir('my_directory') print(entries) ScandirIterator 指向了当前目录中的所有条目。你可以遍历迭代器的内容,并打印文件名。 import os with os.scandir('my_directory') as entries: for entry in entries: print(entry.name)