流暢的python學習-3

一、文件操作

#!/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)

猜你喜欢

转载自www.cnblogs.com/1314520xh/p/12765074.html
今日推荐