Les exemples de cet article décrivent les exceptions Python et les mécanismes de traitement de fichiers. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
1 Gestion des exceptions
Les exceptions de Python utilisent
essayez
sauf
finalement
à gérer. Et except peut également être suivi de else.
Pour déclencher une exception, utilisez raise
Si l'exception levée n'est pas gérée, des informations rouges sont affichées. affiché dans l'IDE Python Lorsque le vrai programme Python est en cours d'exécution, le programme se terminera
Nous avons déjà vu plusieurs exceptions :
Si la clé utilisée dans le dictionnaire ne le fait pas. existe, KeyError sera déclenché une exception. Par exemple :
>>> d = {"a":1, "b":"abc"} >>> d["c"] Traceback (most recent call last): File "<interactive input>", line 1, in <module> KeyError: 'c'
Une valeur qui n'existe pas dans la liste de recherche déclenchera une exception ValueError. :
>>> li = [1,2] >>> li.index(3) Traceback (most recent call last): File "<interactive input>", line 1, in <module> ValueError: list.index(x): x not in list
correspond. Si un indice est utilisé pour faire référence à un élément de la liste, si l'indice est hors limites, une exception IndexError sera générée. être généré. Par exemple :
>>> li[2] Traceback (most recent call last): File "<interactive input>", line 1, in <module> IndexError: list index out of range
Appelle une méthode qui n'existe pas. Une exception AttributeError sera levée
Références a. variable qui n'existe pas. Une exception NameError sera levée.
Mélange les types de données sans conversion forcée.
Une IOError provoquée par une erreur d'opération de fichier. 🎜>
try: fsock = open("/notthere") except IOError: print "The file dose not exits..." else: print "open the file." print "this line will always print"
try except peut être suivi d'une instruction else Lorsque l'exception spécifiée n'est pas interceptée, l'instruction else est exécutée
Comme mentionné précédemment, open peut être utilisé pour ouvrir un fichier et renvoyer un objet fichier. Sa fonction est déclarée comme suit :
<🎜. >open(name[, mode[, buffering]])
Le deuxième paramètre est spécifié comme "rb". Cela signifie ouvrir le fichier en mode lecture binaire. Si ce paramètre est par défaut, cela signifie l'ouvrir en mode texte. .
>>> f = open("/music/_singles/kairo.mp3", "rb")
Après avoir ouvert le fichier, vous pouvez lire et écrire Par exemple :
>>> f.name '/music/_singles/kairo.mp3' >>> f.mode 'rb'
>>> f.tell()
0 >>> f.seek(0, 2)
Cette instruction positionne donc le pointeur de fichier à la fin du fichier.
Cela imprimera la longueur du fichier<. 🎜>
>>> f.tell()
lit les 128 derniers octets du fichier et renvoie les données lues sous forme de chaîne. Lors de la lecture des données, le pointeur du fichier est également déplacé vers l'arrière. >
Le paramètre de lecture indique le nombre maximum d'octets à lire. Ce paramètre peut également être omis. Cela signifie Lire jusqu'à la fin du fichier.Si une erreur se produit lors de la lecture (comme par exemple). secteurs défectueux sur le disque ou le réseau est déconnecté), une exception IOError sera levée.>>> f.seek(-128, 2) >>> data = f.read(128)
>>> f.closed
False >>> f.close()
La méthode d'écriture d'un fichier est similaire à celui de la lecture, il nécessite cependant que le fichier soit ouvert pour "écrire". Par exemple :
>>> f.closed True
où 'w' signifie écrire Ouvrir. . De cette façon, même si le fichier n'existe pas, il sera créé. S'il existe, le fichier existant sera écrasé
>>> f1 = open('test.log', 'w')
>>> f1.write('abc') >>> f1.close() >>> file('test.log').read()
dans. Python. for est utilisé dans Python Traverse a List Par exemple :
Cela me permettra de recevoir les valeurs des éléments dans li. à tour de rôle dans la boucle. ... print i
...
1>>> li = [1, 2, 3] >>> for i in li:
3
Cette sortie est la même que print "n ".joni(li).
Si vous voulez faire comme les autres La même chose que dans la langue. Laissez pour être utilisé pour compter. Vous pouvez utiliser la méthode suivante : Vous devez utiliser for pour parcourir le dictionnaire comme suit :
>>> for i in range(len(li)) : print li[i] ... 1 2 3
4 Utilisez sys.modules
>>> d = {1:"abc", 2:"def"} >>> for k, v in d.items() : print "%d = %s" % (k, v) ... 1 = abc 2 = def
en Python. modules est un objet dictionnaire global défini dans le module sys.
Une fois que nous importons un module, nous pouvons le trouver dans sys.modules.
Chaque class a un "attribut de classe" intégré : __module__. Sa valeur est le module dans lequel la classe est définie.
5 Travailler avec DirectoryLà. existe plusieurs fonctions pour exploiter les fichiers et les répertoires dans le module référencé par os.path Par exemple :
.
这个join函数用来将一个或多个字符串构造成一个路径名.
'c:\music\mahadeva.mp3' >>> os.path.expanduser("~")
expanduser函数用'~'作参数时. 返回当前用户根目录.
'c:\Documents and Settings\mpilgrim\My Documents'
>>> (filepath, filename) = os.path.split("c:\music\a.mp3")
split函数用来将一个路径名分成目录名和文件名. 它返回的是一个tuple. 用返回的tuple对(filepath, filename)赋值.
>>> filepath 'c:\music' >>> filename 'a.mp3' >>> (a, b) = os.path.splitext("a.mp3")
类似的. 这个splitext用来将一个全文件名分成 文件名 和 扩展名 两部分.
>>> a 'a' >>> b '.mp3'
列出目录用:
>>> os.listdir("c:\")
这个函数将返回一个字符串list. 包括所有的文件和文件夹的名字.
['boot.ini', 'CONFIG.SYS', 'AUTOEXEC.BAT', 'java', 等]
要判断一个字符串路径到底是一个文件还是一个文件夹. 用os.path模块中的 isfile() 或 isdir(). 如:
>>> [f for f in os.listdir("c:") if os.path.isdir(os.path.join("c:", f))]
这样就打印出c中所有文件夹名构成的list.
如果要在目录操作中使用通配符. 可以如下:
>>> import glob
要先导入 glob 模块
>>> glob.glob('c:\music\*.mp3')
则返回的list中包含了该目录下所有的 .mp3 后缀的文件名.
更多python异常和文件处理机制相关文章请关注PHP中文网!