Maison > développement back-end > Tutoriel Python > Comment charger et traiter des fichiers Python ?

Comment charger et traiter des fichiers Python ?

王林
Libérer: 2023-05-09 21:01:08
avant
1465 Les gens l'ont consulté

Chargement et traitement des fichiers

1. Vérifiez si le chemin du fichier en python

à propos des méthodes de chargement et de traitement des fichiers existe. S'il n'existe pas, créez ce chemin.

#如果不存在路径,就创建一个这样的路径
    if not os.path.exists(exp_path):
        os.mkdir(exp_path)
Copier après la connexion
  • os.path.exists() : Détermine si le fichier entre parenthèses existe. Le fichier entre parenthèses peut être le chemin du fichier. S'il existe, il renvoie True, s'il est. n'existe pas, il renvoie Falseos.path.exists():判断括号里的文件是否存在的意思,括号内的可以是文件路径.如果存在就返回True,不存在返回False

  • os.mkdir():创建路径

2、对文件夹下面的文件名称进行列表排列

file_list = os.listdir(dir_path)
Copier après la connexion

3、过滤不符合要求的文件

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表

filter(function, iterable)
Copier après la connexion
  • function -- 判断函数。

  • iterable -- 可迭代对象

def is_odd(n):
    return n % 2 == 1
 
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
Copier après la connexion
[1, 3, 5, 7, 9]
Copier après la connexion

4、用于将元组转换为列表

  • list()

os.mkdir() : Créez un chemin

2 Répertoriez les noms de fichiers sous le dossier

        with open("11.txt", 'r') as file:
            for l in file:
                idnos.append(l.replace('\n',''))
        f.close()  # 关闭文件,这个可以是个好习惯哦
Copier après la connexion
3. répondre aux exigences

fonction filter() Utilisée pour filtrer la séquence, filtrer les éléments qui ne remplissent pas les conditions et renvoyer une nouvelle liste composée d'éléments qui remplissent les conditions

            with open("d.txt", 'a',encoding='utf-8') as file:
                file.write('\n' + '摘要:' + gaiyao)
                file.write('\n')
            file.close()
Copier après la connexion

fonction -- Fonction de jugement.

iterable -- Objet itérable

#coding=utf-8
f = open('11.txt', 'r')
content = f.readlines()
print(type(content))
i=1
for temp in content:
    print("%d:%s" % (i, temp))
    i += 1
f.close()
Copier après la connexion
#coding=utf-8
f = open('11.txt', 'r')
content = f.readline()
print("1:%s" % content)
content = f.readline()
print("2:%s" % content)
f.close()
Copier après la connexion

4 Utilisé pour convertir des tuples en listes

list()

^(*.  ̄(oo) ̄)^

Les tuples sont très similaires aux listes. La différence est que les valeurs des éléments des tuples ne peuvent pas être modifiées.

Les tuples sont placés entre parenthèses et les listes sont placées entre crochetsEn bref, il est plus pratique d'utiliser les codeces et open(). 6. readlines()Traitement du fichier Python (résumé)
# 提示输入文件
oldFileName = input("请输入要拷贝的文件名字:")
# 以读的方式打开文件
oldFile = open(oldFileName,'rb')
# 提取文件的后缀
fileFlagNum = oldFileName.rfind('.')
if fileFlagNum > 0:
    fileFlag = oldFileName[fileFlagNum:]
# 组织新的文件名字
newFileName = oldFileName[:fileFlagNum] + '[复件]' + fileFlag
# 创建新文件
newFile = open(newFileName, 'wb')
# 把旧文件中的数据,一行一行的进行复制到新文件中
for lineContent in oldFile.readlines():
    newFile.write(lineContent)
# 关闭文件
oldFile.close()
newFile.close()
Copier après la connexion
1.2 L'écriture txt n'écrase pas l'écriture
import os
os.rename("毕业论文.txt", "毕业论文-最终版.txt")
Copier après la connexion
Mode d'accès Description r Ouvrez le fichier en mode lecture seule. Le pointeur de fichier sera placé au début du fichier. C'est le mode par défaut. w Ouvrez un fichier en écriture uniquement. Si le fichier existe déjà, il est écrasé. Si le fichier n'existe pas, créez un nouveau fichier. aOuvrez un fichier à ajouter. Si le fichier existe déjà, le pointeur de fichier sera placé à la fin du fichier. En d’autres termes, le nouveau contenu sera écrit après le contenu existant. Si le fichier n'existe pas, créez un nouveau fichier en écriture. rbOuvrez un fichier au format binaire en lecture seule. Le pointeur de fichier sera placé au début du fichier. C'est le mode par défaut. wbOuvrez un fichier au format binaire en écriture uniquement. Si le fichier existe déjà, il est écrasé. Si le fichier n'existe pas, créez un nouveau fichier. abOuvrez un fichier au format binaire pour l'ajouter. Si le fichier existe déjà, le pointeur de fichier sera placé à la fin du fichier. En d’autres termes, le nouveau contenu sera écrit après le contenu existant. Si le fichier n'existe pas, créez un nouveau fichier en écriture. r+Ouvrez un fichier en lecture et en écriture. Le pointeur de fichier sera placé au début du fichier. w+Ouvrez un fichier en lecture et en écriture. Si le fichier existe déjà, il est écrasé. Si le fichier n'existe pas, créez un nouveau fichier.
5 Ouvrez le fichier codeces, open()Après avoir examiné les informations et expérimenté, j'ai trouvé que la fonction est similaire à open(), mais lorsque l'exploration ou d'autres méthodes obtiennent des données et les écrivent dans un fichier, il y aura un problème d'encodage incohérent, elles sont donc généralement converties en encodage Unicode.
Lisez l'intégralité du contenu du fichier ligne par ligne à chaque fois, placez le contenu lu dans une liste et renvoyez le type de liste7.Lisez l'intégralité du contenu du fichier ligne par ligne. à chaque fois Contenu du fichier, mettre le contenu lu dans une liste, renvoyer le type de liste
1, fichier txt 1.1 Lecture du fichier txt
1.3 La signification de chaque balise de fichier

a+

Ouvrez un fichier en lecture et en écriture. Si le fichier existe déjà, le pointeur de fichier sera placé à la fin du fichier. Le fichier sera ouvert en mode ajout. Si le fichier n'existe pas, un nouveau fichier est créé pour la lecture et l'écriture.

rb+

Ouvre un fichier au format binaire en lecture et en écriture. Le pointeur de fichier sera placé au début du fichier.

wb+

Ouvre un fichier au format binaire en lecture et en écriture. Si le fichier existe déjà, il est écrasé. Si le fichier n'existe pas, créez un nouveau fichier.

ab+

Ouvrez un fichier au format binaire pour l'ajouter. Si le fichier existe déjà, le pointeur de fichier sera placé à la fin du fichier. Si le fichier n'existe pas, un nouveau fichier est créé pour la lecture et l'écriture.

1.4 Lire tout le contenu du txt ligne par ligne

import os
os.remove("毕业论文.txt")
Copier après la connexion

1.5 Lire le contenu des deux premières lignes du txt

import os
os.mkdir("张三")
Copier après la connexion

1.6 Copie du fichier 🎜
import os
os.getcwd()
Copier après la connexion
🎜1.7 Opérations liées aux fichiers 🎜🎜Renommer le fichier🎜
import os
os.chdir("../")
Copier après la connexion
🎜 Supprimer Fichier🎜
import os
os.listdir("./")
Copier après la connexion
🎜Créer un dossier🎜
import os
os.rmdir("张三")
Copier après la connexion
🎜Obtenir le répertoire actuel🎜
import time
import os
# 定一个列表,用来存储所有的学生信息(每个学生是一个字典)
info_list = []
def print_menu():
    print("---------------------------")
    print("      学生管理系统 V1.0")
    print(" 1:添加学生")
    print(" 2:删除学生")
    print(" 3:修改学生")
    print(" 4:查询学生")
    print(" 5:显示所有学生")
    print(" 6:保存数据")
    print(" 7:退出系统")
    print("---------------------------")
def add_new_info():
    """添加学生信息"""
    global info_list
    new_name = input("请输入姓名:")
    new_tel = input("请输入手机号:")
    new_qq = input("请输入QQ:")
    for temp_info in info_list:
        if temp_info['name'] == new_name:
            print("此用户名已经被占用,请重新输入")
            return  # 如果一个函数只有return就相当于让函数结束,没有返回值
    # 定义一个字典,用来存储用户的学生信息(这是一个字典)
    info = {}
    # 向字典中添加数据
    info["name"] = new_name
    info["tel"] = new_tel
    info["qq"] = new_qq
    # 向列表中添加这个字典
    info_list.append(info)
def del_info():
    """删除学生信息"""
    global info_list
    del_num = int(input("请输入要删除的序号:"))
    if 0 <= del_num < len(info_list):
        del_flag = input("你确定要删除么?yes or no")
        if del_flag == "yes":
            del info_list[del_num]
    else:
        print("输入序号有误,请重新输入")
def modify_info():
    """修改学生信息"""
    global info_list
    modify_num = int(input("请输入要修改的序号:"))
    if 0 <= modify_num < len(info_list):
        print("你要修改的信息是:")
        print("name:%s, tel:%s, QQ:%s" % (info_list[modify_num][&#39;name&#39;],
            info_list[modify_num][&#39;tel&#39;],info_list[modify_num][&#39;qq&#39;]))
        info_list[modify_num][&#39;name&#39;] = input("请输入新的姓名:")
        info_list[modify_num][&#39;tel&#39;] = input("请输入新的手机号:")
        info_list[modify_num][&#39;qq&#39;] = input("请输入新QQ:")
    else:
        print("输入序号有误,请重新输入")
def search_info():
    """查询学生信息"""
    search_name = input("请输入要查询的学生姓名:")
    for temp_info in info_list:
        if temp_info[&#39;name&#39;] == search_name:
            print("查询到的信息如下:")
            print("name:%s, tel:%s, QQ:%s" % (temp_info[&#39;name&#39;],
                temp_info[&#39;tel&#39;], temp_info[&#39;qq&#39;]))
            break
    else:
        print("没有您要找的信息....")
def print_all_info():
    """遍历学生信息"""
    print("序号\t姓名\t\t手机号\t\tQQ")
    i = 0
    for temp in info_list:
        # temp是一个字典
        print("%d\t%s\t\t%s\t\t%s" % (i, temp[&#39;name&#39;], temp[&#39;tel&#39;], temp[&#39;qq&#39;]))
        i += 1
def save_data():
    """加载之前存储的数据"""
    f = open("info_data.data", "w")
    f.write(str(info_list))
    f.close()
def load_data():
    """加载之前存储的数据"""
    global info_list
    f = open("info_data.data")
    content = f.read()
    info_list = eval(content)
    f.close()
def main():
    """用来控制整个流程"""
    # 加载数据(1次即可)
    load_data()
    while True:
        # 1. 打印功能
        print_menu()
        # 2. 获取用户的选择
        num = input("请输入要进行的操作(数字):")
        # 3. 根据用户选择,做相应的事情
        if num == "1":
            # 添加学生
            add_new_info()
        elif num == "2":
            # 删除学生
            del_info()
        elif num == "3":
            # 修改学生
            modify_info()
        elif num == "4":
            # 查询学生
            search_info()
        elif num == "5":
            # 遍历所有的信息
            print_all_info()
        elif num == "6":
            # 保存数据到文件中
            save_data()
        elif num == "7":
            # 退出系统
            exit_flag = input("亲,你确定要退出么?~~~~(>_<)~~~~(yes or no) ")
            if exit_flag == "yes":
                break
        else:
            print("输入有误,请重新输入......")
        input("\n\n\n按回车键继续....")
        os.system("clear")  # 调用Linux命令clear完成清屏
# 程序的开始
main()
Copier après la connexion
🎜Changer le répertoire par défaut🎜
with open(&#39;新1.csv&#39;, &#39;a&#39;, encoding=&#39;utf-8-sig&#39;, newline=&#39;&#39;) as f:
    csv_writer = csv.writer(f, delimiter=&#39;,&#39;)
    csv_writer.writerow(
        [str(name), str(zijin), str(guimo), str(jingli), str(phone1), str(phone2),str(chanpin)])
Copier après la connexion
🎜Obtenir la liste des répertoires🎜rrreee🎜Supprimer le dossier🎜rrreee🎜1.8 Gestion des fichiers - Système de gestion des étudiants🎜🎜Remarque : créez d'abord un fichier : info_data. data🎜rrreee🎜2. opération de fichier csv🎜🎜2.1 écriture csv🎜rrreee

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