Maison >développement back-end >Tutoriel Python >Comment implémenter la mise à jour de la ligne de lecture du cache de ligne Python

Comment implémenter la mise à jour de la ligne de lecture du cache de ligne Python

王林
王林avant
2023-05-01 19:58:05780parcourir

La fonction du module est de permettre d'obtenir n'importe quelle ou plusieurs lignes à partir de n'importe quel fichier et d'utiliser la mise en cache pour l'optimisation.

Il existe plusieurs interfaces API

linecache.getlines(filename)
Récupérez tout le contenu du fichier nommé filename et affichez-le au format liste, avec chaque ligne du fichier comme élément de la liste, et linenum -1 as La position de l'élément dans la liste est stockée

linecache.getline(filename,lineno)
Obtenez lineno à partir du fichier nommé filename. Cette fonction ne lancera jamais d'exception - en cas d'erreur, elle renverra "" (les nouvelles lignes seront incluses dans la ligne trouvée).
Si le fichier n'est pas trouvé, cette fonction recherchera dans

linecache. clearcache()
Videz le cache. Si vous n'avez plus besoin de la ligne précédemment obtenue à partir de getline()

linecache.checkcache(filename)
Vérifiez la validité du cache si le fichier est dans le cache et que vous devez le faire. mettez à jour la version, utilisez cette fonction. Si le nom de fichier est omis, toutes les entrées dans le cache seront vérifiées

linecache.updatecache(filename)
Si le nom de fichier est mis à jour, utilisez cette fonction pour mettre à jour la liste renvoyée par linecache. .getlines(filename).

Instructions d'utilisation

# 1、获取a.txt文件的内容
>>> a=linecache.getlines('C:/Users/yuan/Desktop/a.txt')
['1a\n', '2b\n', '3c\n', '4d\n', '5e\n', '6f\n', '7g\n']
# 2、获取a.txt文件中第1-4行的内容
>>> a=linecache.getlines('C:/Users/yuan/Desktop/a.txt')[0:4]
>>> a
['1a\n', '2b\n', '3c\n', '4d\n']
# 3、获取a.txt文件中第4行的内容
>>> a=linecache.getline('C:/Users/yuan/Desktop/a.txt',4)
>>>> a
'4d\n'

Mettre à jour les problèmes de cache de ligne

Après avoir utilisé linecache.getlines(filename) ou linecache.getline(filename), si un fichier .txt a changé, mais si vous utilisez linecache. getlines ou linecache.getline encore une fois, le contenu obtenu n'est pas le dernier contenu du fichier, mais le contenu précédent, car le cache n'a pas été mis à jour pour le moment :

1. ) pour mettre à jour le cache de fichiers sur le disque dur, puis exécutez linecache.getlines(‘a.txt’) pour obtenir le dernier contenu de a.txt;

2 Utilisez linecache.updatecache directement (nom de fichier), vous pouvez obtenez le dernier contenu du dernier a.txt, mais cette fonction lit et renvoie le texte intégral

3. Utilisez linecache.clearcache() directement après linecache.getlines ou linecache.getline pour vider le cache

Autre : Après avoir lu le fichier, vous devez vider le cache à la fin, en utilisant linecache.clearcache() pour vider le cache et libérer le cache.

Ce module utilise de la mémoire pour mettre en cache le contenu de votre fichier. la vitesse d'ouverture du fichier ouvert est liée à la taille de votre mémoire

import linecache

for i in range(4):  
    linecache.checkcache('C:/Users/yuan/Desktop/cpucheck.txt')         # 更新缓存
    # text = linecache.updatecache('C:/Users/liyuan/Desktop/cpucheck.txt', 4)
    text = linecache.getline('C:/Users/yuan/Desktop/cpucheck.txt', 3)      # 读取第三行

    print(text)
linecache.clearcache()    # 清空、释放缓存
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer