Maison  >  Article  >  développement back-end  >  Code d'implémentation pour les opérations de lecture, d'écriture et de sauvegarde de fichiers Python

Code d'implémentation pour les opérations de lecture, d'écriture et de sauvegarde de fichiers Python

不言
不言original
2018-09-13 16:37:531583parcourir

Le contenu de cet article concerne le code d'implémentation des opérations de lecture, d'écriture et de sauvegarde de fichiers Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Enregistrez le processus d'utilisation de Python pour lire et écrire des fichiers pour la première fois. Bien que ce soit très simple, il y a en fait certaines choses à prendre en compte lors de sa première implémentation.

Opération de lecture d'un seul fichier :

Supposons d'abord une exigence comme suit :

Lire un fichier test.txt

Supprimer le caractères spécifiés Texte précédent

Après avoir compris les exigences, commençons à écrire le code. Le code est très simple. Allez simplement sur chacun d'eux, voir les commentaires pour plus de détails :

import sys
filePath = "/Users/xxxxxx/Desktop/test.txt"
# 打开文件
files = open(filePath, 'r')
# 转成list
f_list = files.readlines()
tempIndex = 0
# 对f_list 循环 每个index对应一行数据
for index in range(len(f_list)):
    # temp是获取一行的数据
    temp = f_list[index]
    # 判断"test"是不是temp这行数据的首位 如果是首位 result为true
    result = temp.find("test") == 0
    if result:
        # 如果是首位 这就是我们要删除的位置 获取他的index
        tempIndex = index
        break
# 存放新数据
tempContainer = []

for index in range(len(f_list)):
    if index > tempIndex:
        # tempIndex之前的数据我们不处理,把tempindex之后的数据存到新的list里面
        tempContainer.append(f_list[index])
# 这就获得了我们需要的新数据
print(tempContainer)

Le code ci-dessus complète les exigences, c'est très simple. Il y a quelques points à noter :

Les données obtenues directement en utilisant open ne peuvent pas être traitées, elles sont donc d'abord converties en données traitables, comme une liste ou un dictionnaire, etc.

L'open de Python est similaire à celui du C, avec différents états tels que r, r+, w, w+, etc. Voir l'introduction détaillée

Méthodes de fonctionnement courantes de la fonction open
1. r s'ouvre uniquement Pour lire un fichier, celui-ci doit exister.
2. r+ ouvre un fichier lisible et inscriptible, qui doit exister.
3. w ouvre un fichier en écriture seule. Si le fichier existe, la longueur du fichier est effacée à 0, c'est-à-dire que le contenu du fichier disparaît. Si le fichier n'existe pas, créez le fichier.
4. w+ ouvre un fichier lisible et inscriptible. Si le fichier existe, la longueur du fichier sera remise à zéro, c'est-à-dire que le contenu du fichier disparaîtra. Si le fichier n'existe pas, créez le fichier.

Lire, écrire et enregistrer plusieurs fichiers

Supposons qu'une exigence soit la suivante :

  • Plusieurs fichiers doivent être traités

  • Similaire à la test.txt méthode de traitement ci-dessus

  • Après le traitement, enregistrez-le dans un nouveau dossier

En fait, cette exigence est essentiellement : il n'y a qu'une seule opération d'écriture de plus qu'une seule opération de lecture de fichier. L'autre chose c'est de faire un peu le tour de la logique

  • Comment faire fonctionner plusieurs fichiers en même temps

  • et ensuite comment les sauvegarder en plusieurs fichiers

Il n'est définitivement pas possible d'opérer fichier par fichier, c'est trop gênant. Laissez-moi parler de mon idée de mise en œuvre :

  • Placez les fichiers dans un dossier

  • Récupérez tous les noms de fichiers dans ce dossier et collez-les dans un chemin de fichier

  • puis créez un nouveau dossier vide, utilisez le nouveau dossier vide plus le nom du fichier d'origine pour le concaténer dans un nouveau chemin et écrivez-le dans

Le code ci-dessous :

import os

# 初始的文件夹路径
filePath = "/Users/xxxxxxxx/Desktop/fileDocument"
# 存放新文件的空白文件夹
newFilePath = "/Users/xxxxxxxx/Desktop/newFileDocument"
# 获取文件夹下所有文件名
fileNames = os.listdir(filePath)
for file in fileNames:
    # 如果当前的文件名包含了'txt',就当它是正确的文件(并不严谨)
    if file.find("txt") >= 0:
        # 拼接成我们要读取的完整路径
        fileFullPath = filePath + "/" + file
        # open 函数 默认是 'r'类型 ,
        singleFile = open(fileFullPath)
        # 转换成list数据
        singleFile_list = singleFile.readlines()

        tempIndex = 0
        for index in range(len(singleFile_list)):
            temp = singleFile_list[index]
            result = temp.find("min") == 0
            if result:
                tempIndex = index
                break
        # 拼接新的文件路径
        newSingleFileFullPath = newFilePath + "/" + file
        # 以 w 方式打开新的空白文件
        newFile = open(newSingleFileFullPath, 'w')
        for index in range(len(singleFile_list)):
            if index > tempIndex:
                # 写入tempindex行之后的数据
                newFile.writelines(singleFile_list[index])
        newFile.close()

Le code ci-dessus n'a en fait rien à introduire, c'est juste une boucle for et la logique est la même qu'une opération de lecture de fichier unique, mais avec un opération d'écriture supplémentaire.

Recommandations associées :

Lire et écrire le code d'opération pour les fichiers PHP

Détails de Python complétant la lecture et l'enregistrement des classes de fichiers Introduction

Implémentation Python de la lecture des noms de fichiers de tous les fichiers d'un répertoire et de leur enregistrement dans le code des fichiers txt

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:
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