python如何向文件最开始插入一个字符串?
高洛峰
高洛峰 2017-04-18 09:03:04
0
5
395

在尽量保证性能的情况下

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(5)
小葫芦

Si vous souhaitez insérer du contenu devant un fichier déjà existant, alors les performances ne sont pas un gros souci.
Parce que vous devez à nouveau lire et écrire le contenu de ce fichier quoi qu'il arrive, cela est déterminé par la logique du système de fichiers.

黄舟

file.seek(0) Il s'agit du décalage défini sur 0, qui est le tout début.
Vous pouvez utiliser file.tell() pour confirmer.
Vous pouvez vous référer aux deux pages web.
https://docs.python.org/2/tutorial/inputoutput.html
http://www.tutorialspoint.com/python/file_seek.htm

阿神

Aucune recherche (0) requise

r Le pointeur de fichier du modèle se trouve au début du fichier.

De plus, le contenu du fichier doit être parcouru

PHPzhong

Discutons de cette problématique en deux points :

  1. Comment insérer efficacement du contenu en tête ou au milieu du fichier L'efficacité fait référence à moins de temps (vitesse plus rapide) et à une utilisation des ressources.

  2. Comment écrire suffisamment de code pythonique pour gérer ce problème

Laissez-moi d'abord vous faire part de ma conclusion (si vous avez d'autres opinions, n'hésitez pas à en discuter, peut-être que je me trompe) :

  1. Je ne peux pas le faire

  2. Tant qu'il n'est pas trop mal écrit ou trop difficile à lire, je pense qu'un code médiocre ou plus long est bien (voire mieux)

Citer les paroles du grand dieu pour prouver :

Python facilite beaucoup de choses et contient des bibliothèques et des wrappers pour de nombreuses opérations courantes, mais le but n'est pas de cacher des vérités fondamentales.

La vérité fondamentale que vous rencontrez ici est que vous ne pouvez généralement pas ajouter des données à une structure plate existante sans réécrire la structure entière.

Il existe des moyens d'enregistrer un descripteur de fichier ou de rendre votre code moins lisible, dont beaucoup sont fournis dans d'autres réponses, mais aucun ne change l'opération fondamentale : vous devez lire le fichier existant, puis écrire les données que vous souhaitez ajouter au début. , suivi des données existantes que vous avez lues.

Par tous les moyens, sauvegardez-vous le descripteur de fichier, mais ne cherchez pas à regrouper cette opération dans le moins de lignes de code possible. En fait, ne cherchez jamais le moins de lignes de code - c'est de l'obscurcissement, pas de la programmation.

Par Nicholas Knight

Référence :

Ajouter une ligne à un fichier existant en Python


Questions auxquelles j'ai répondu : Python-QA

洪涛

Il n'y a aucun moyen d'insérer du contenu directement au début, le fichier doit être lu une seule fois.
J'ai déjà réfléchi à ce problème. À cette époque, je décompilais un projet python et je devais traiter tous les fichiers par lots. Insérez le contenu suivant au début de chaque fichier python :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

J'ai aussi essayé de nombreuses méthodes. J'ai également cherché des méthodes en ligne à cette époque, mais en vain.
Donc, au final, j'ai utilisé la méthode la plus simple et la plus violente, en utilisant osd.walk pour parcourir tous les fichiers python, écrire le contenu au début dans un nouveau fichier, puis lire le contenu du fichier d'origine, l'écrire dans le nouveau fichier, puis le nouveau fichier est renommé avec le nom de fichier d'origine.
Bien que ce soit très violent, j'ai découvert plus tard que c'était en fait très rapide, peut-être parce que le fichier n'était pas trop gros. ^_^

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal