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

王林
Libérer: 2023-05-01 19:58:05
avant
717 Les gens l'ont consulté

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'
Copier après la connexion

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()    # 清空、释放缓存
Copier après la connexion
.

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!