Maison développement back-end Tutoriel Python API d'opération de fichier Python

API d'opération de fichier Python

Feb 27, 2017 pm 05:05 PM
python 文件操作

Le fonctionnement des fichiers et des dossiers (fonctions d'opération de fichiers) en python nécessite le module os et le module Shutil.

Obtenir le répertoire de travail actuel, c'est-à-dire le chemin du répertoire dans lequel le script Python actuel fonctionne : os.getcwd()
Renvoyer tous les fichiers et noms de répertoire dans le répertoire spécifié : os.listdir()
Fonction utilisée pour supprimer un fichier : os.remove()
Supprimer plusieurs répertoires : os.removedirs(r"c:python")
Vérifier si le chemin donné est un fichier : os.path .isfile()
Vérifiez si le chemin donné est un répertoire : os.path.isdir()
Vérifiez s'il s'agit d'un chemin absolu : os.path.isabs()
Vérifiez si le chemin donné est vrai Stockage local : os.path.exists()
Renvoie le nom du répertoire et le nom de fichier d'un chemin : os.path.split() par exemple os.path.split('/home/swaroop/byte /code/poem.txt' ) Résultat : ('/home/swaroop/byte/code', 'poem.txt')
Extension divisée : os.path.splitext()
Obtenir le nom du chemin : os.path .dirname()
Obtenir le nom du fichier : os.path.basename()
Exécuter la commande shell : os.system()
Lire et définir les variables d'environnement : os.getenv() et os.putenv()
give Indiquez le terminateur de ligne utilisé par la plateforme actuelle : os.linesep Windows utilise 'rn', Linux utilise 'n' et Mac utilise 'r'
pour indiquer la plateforme que vous utilisez : os.name Pour Windows , c'est 'nt' , tandis que pour les utilisateurs Linux/Unix c'est 'posix'
Renommer : os.rename(old, new)
Créer un répertoire multi-niveaux : os.makedirs(r "c:pythontest" )
Créer un répertoire unique : os.mkdir ("test")
Obtenir les attributs du fichier : os.stat (fichier)
Modifier les autorisations et les horodatages du fichier : os.chmod (fichier)
Mettre fin au courant processus : os.exit ()
Obtenir la taille du fichier : os.path.getsize(filename)

Opération sur le fichier :
os.mknod("test.txt" ) Créez un fichier vide
fp = open("test.txt",w) Ouvrez directement un fichier Si le fichier n'existe pas, créez le fichier

A propos du mode ouvert :

w pour écrire Ouvrir en mode ajout,

a Ouvrir en mode ajout (commencer par EOF, créer un nouveau fichier si nécessaire)
r Ouvrir en mode lecture-écriture
w Ouvrir dans mode lecture-écriture (voir w)
a Ouvert en mode lecture-écriture Ouvert en mode écriture (voir a)
rb Ouvert en mode lecture binaire
wb Ouvert en mode écriture binaire (voir w)
ab Ouvrir en mode ajout binaire (voir a)
rb Lire et écrire en mode binaire ouvert (voir r )
wb Ouvrir en mode lecture-écriture binaire (voir w )
ab Ouvrir en mode lecture-écriture binaire mode écriture (voir a )

fp.read ([size]) #La taille est la longueur de la lecture, et l'unité
fp.reamline ([size]) #lire une partie de
fp.readlines([size. ])                                                                                                                                                           # Traitez chaque ligne du fichier comme un membre d'une liste et renvoyez cette liste. En fait, il est implémenté en interne en appelant readline() dans une boucle. Si le paramètre size est fourni, size représente la longueur totale du contenu lu, ce qui signifie que seule une partie du fichier peut être lue. <                                                                                                                                                          (Plusieurs lignes écrites en même temps). Cette fonction écrit également fidèlement, sans rien ajouter après chaque ligne.
fp.close()                                                                                                      Python fermera automatiquement un fichier une fois qu'il n'est plus utilisé. Cependant, cette fonction n'est pas garantie. Il est préférable de prendre l'habitude de le fermer vous-même. Si un fichier est opéré après sa fermeture, une ValueError se produira
fp.flush() #Return a long entier "file label"
fp.isatty()                                                                                                                                                                     à La position actuelle, avec le début de le fichier comme origine
fp. next()                                                                                                                                                                                                                                        #Retournez à la ligne suivante et déplacez la marque d'opération de fichier sur la ligne suivante. Lorsqu'un fichier est utilisé dans une instruction telle que for...in file, la fonction next() est appelée pour implémenter le parcours.
fp.seek(offset[,whence])                                                                                                                                                                                                                                                                             Déplacez la marque d'opération de fichier vers la position de décalage. Ce décalage est généralement calculé par rapport au début du fichier et est généralement un nombre positif. Mais ce n'est pas nécessairement le cas si le paramètre whence est fourni. whence peut être 0 pour recommencer le calcul depuis le début, et 1 pour utiliser la position actuelle comme origine. 2 indique que la fin du fichier est utilisée comme origine du calcul. Il convient de noter que si le fichier est ouvert en mode a ou a, la marque d'opération de fichier reviendra automatiquement à la fin du fichier à chaque fois qu'une opération d'écriture est effectuée.
FP.TRUNCATE ([SIZE]) #

目录操作:
os.mkdir("file")                   创建目录
复制文件:
shutil.copyfile("oldfile","newfile")       oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile")            oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
复制文件夹:
shutil.copytree("olddir","newdir")        olddir和newdir都只能是目录,且newdir必须不存在
重命名文件(目录)
os.rename("oldname","newname")       文件或目录都是使用这条命令
移动文件(目录)
shutil.move("oldpos","newpos")  
删除文件
os.remove("file")
删除目录
os.rmdir("dir")只能删除空目录
shutil.rmtree("dir")    空目录、有内容的目录都可以删
转换目录
os.chdir("path")   换路径

相关例子

1 将文件夹下所有图片名称加上'_fc'

python代码:

# -*- coding:utf-8 -*-
import re
import os
import time
#str.split(string)分割字符串
#&#39;连接符&#39;.join(list) 将列表组成字符串
def change_name(path):
  global i
  if not os.path.isdir(path) and not os.path.isfile(path):
    return False
  if os.path.isfile(path):
    file_path = os.path.split(path) #分割出目录与文件
    lists = file_path[1].split(&#39;.&#39;) #分割出文件与文件扩展名
    file_ext = lists[-1] #取出后缀名(列表切片操作)
    img_ext = [&#39;bmp&#39;,&#39;jpeg&#39;,&#39;gif&#39;,&#39;psd&#39;,&#39;png&#39;,&#39;jpg&#39;]
    if file_ext in img_ext:
      os.rename(path,file_path[0]+&#39;/&#39;+lists[0]+&#39;_fc.&#39;+file_ext)
      i+=1 #注意这里的i是一个陷阱
    #或者
    #img_ext = &#39;bmp|jpeg|gif|psd|png|jpg&#39;
    #if file_ext in img_ext:
    #  print(&#39;ok---&#39;+file_ext)
  elif os.path.isdir(path):
    for x in os.listdir(path):
      change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用

img_dir = &#39;D:\\xx\\xx\\images&#39;
img_dir = img_dir.replace(&#39;\\&#39;,&#39;/&#39;)
start = time.time()
i = 0
change_name(img_dir)
c = time.time() - start
print(&#39;程序运行耗时:%0.2f&#39;%(c))
print(&#39;总共处理了 %s 张图片&#39;%(i))
Copier après la connexion

输出结果:

程序运行耗时:0.11
总共处理了 109 张图片


Python常见文件操作示例

os.path 模块中的路径名访问函数
分隔
basename() 去掉目录路径, 返回文件名
dirname() 去掉文件名, 返回目录路径
join() 将分离的各部分组合成一个路径名
split() 返回 (dirname(), basename()) 元组
splitdrive() 返回 (drivename, pathname) 元组
splitext() 返回 (filename, extension) 元组

信息
getatime() 返回最近访问时间
getctime() 返回文件创建时间
getmtime() 返回最近文件修改时间
getsize() 返回文件大小(以字节为单位)

Requête
exist() Si le chemin spécifié (fichier ou répertoire) existe
isabs() Spécifiez si le chemin est un chemin absolu
isdir() Spécifiez si le chemin existe et est un répertoire
isfile() précise si le chemin existe et est un fichier
islink() précise si le chemin existe et est un lien symbolique
ismount() précise si le chemin existe et est un point de montage
samefile () deux noms de chemin S'il pointe vers le même fichier

os.path.isdir(name) : Détermine si name est un répertoire Si name n'est pas un répertoire, il renvoie false
os.path. .isfile(name) : Détermine si le nom est un répertoire. Si le nom n'existe pas, il renverra false
os.path.exists(name) : Détermine si le nom du fichier ou du répertoire
existe dans le système d'exploitation. path.getsize(name) : récupère la taille du fichier, si le nom est un répertoire, renvoie 0L
os.path.abspath(name) : récupère le chemin absolu
os.path.normpath(path) : normalise le forme de chaîne de chemin
os.path.split(name) : divisez le nom du fichier et le répertoire (en fait, si vous utilisez entièrement des répertoires, cela séparera également le dernier répertoire en tant que nom de fichier, et il ne déterminera pas si le fichier ou le répertoire existe)
os.path.splitext() : noms et extensions de fichiers séparés
os.path.join(path,name) : rejoindre le répertoire avec le nom de fichier ou le répertoire
os.path.basename( path): Renvoie le nom du fichier
os.path.dirname(path): Renvoie le chemin du fichier
                                                                                                                                    🎜> pathsep Une chaîne utilisée pour séparer les chemins de fichiers
curdir Le nom de chaîne du répertoire de travail actuel
. pardir (le nom de chaîne du répertoire parent du répertoire de travail actuel

1. Renommer : os rename(old, new)

2. Supprimer : os.remove(file)
3. Listez les fichiers dans le répertoire : os.listdir(path)
4. Obtenez le répertoire de travail actuel : os.getcwd()
5. Changez le répertoire de travail : os.chdir(newdir)
6. Créez un répertoire multi-niveaux : os.makedirs(r"c:pythontest")
7. Créez un seul répertoire : os.mkdir("test")
8. Supprimez plusieurs répertoires : os.removedirs(r "c:python") #Supprime tous les répertoires vides sous le dernier répertoire du chemin donné.
9. Supprimez un seul répertoire : os.rmdir("test")
10. Obtenez les attributs du fichier : os.stat(file)
11. Modifiez les autorisations et les horodatages du fichier : os.chmod(file)
12. Exécutez les commandes du système d'exploitation : os.system("dir")
13. Démarrez un nouveau processus : os.exec(), os.execvp()
14. Exécutez le programme en arrière-plan : osspawnv()
15. Terminez le processus en cours : os.exit(), os._exit()
16. Nom du fichier divisé : os.path.split(r"c:pythonhello.py") - -> ( "c:\python", "hello.py")
17. Extension divisée : os.path.splitext(r"c:pythonhello.py") --> \hello" , ".py")
18. Obtenez le nom du chemin : os.path.dirname(r"c:pythonhello.py") --> "c:\python"
19. Obtenez le nom du fichier : os .path.basename(r"r:pythonhello.py") --> "hello.py"
20. Déterminez si le fichier existe : os.path.exists(r"c:pythonhello .py") -- > True
21. Déterminez s'il s'agit d'un chemin absolu : os.path.isabs(r".python") --> False
22. Déterminez s'il s'agit d'un répertoire : os.path.isdir(r"c :python") --> True
23. Déterminez s'il s'agit d'un fichier : os.path.isfile(r"c:pythonhello.py") --> True
24. Déterminez s'il s'agit d'un fichier lien : os.path.islink(r"c:pythonhello.py") --> False
25. Obtenez la taille du fichier : os.path.getsize( filename)
26. ********** : os.ismount("c:\") --> True
27. Recherchez tous les fichiers dans le répertoire : os.path.walk ()

Le module Shutil opère sur les fichiers :
1. Copiez un seul fichier : shultil.copy(oldfile, newfle)

2. Copiez l'intégralité de l'arborescence des répertoires : shultil.copytree (r".setup", r".backup")

3 .Supprimez toute l'arborescence des répertoires : shultil.rmtree(r".backup")

临时文件的操作:
1.创建一个唯一的临时文件:tempfile.mktemp() --> filename

2.打开临时文件:tempfile.TemporaryFile()

内存文件(StringIO和cStringIO)操作
[4.StringIO] #cStringIO是StringIO模块的快速实现模块

1.创建内存文件并写入初始数据:f = StringIO.StringIO("Hello world!")
2.读入内存文件数据:print f.read() #或print f.getvalue() --> Hello world!
3.想内存文件写入数据:f.write("Good day!")
4.关闭内存文件:f.close()

import os
import os.path
import unittest
import time
#import pygame

class PyFileCommonOperatorTest(unittest.TestCase):
  def __init__(self):
    """constructor"""
  
  def test01(self):
    print os.linesep
    print os.sep
    print os.pathsep
    print os.curdir
    print os.pardir
    print os.getcwd()
    print &#39;unittest here&#39;


if __name__ == "__main__":
  t = PyFileCommonOperatorTest()
  t.test01()
Copier après la connexion

读文件的写法

#读文件的写法:
#读文本文件: 
input = open(&#39;data&#39;, &#39;r&#39;)#第二个参数是默认的,可以不加
#读二进制文件: 
input = open(&#39;data&#39;, &#39;rb&#39;)
#读取所有文件内容:
open(&#39;xxoo.txt&#39;).read()
#读取固定字节
open(&#39;abinfile&#39;, &#39;rb&#39;).read(100)
#读每行
file_object.readlines()
Copier après la connexion


更多python 文件操作api相关文章请关注PHP中文网!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

Choisir entre PHP et Python: un guide Choisir entre PHP et Python: un guide Apr 18, 2025 am 12:24 AM

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

Peut-on exécuter le code sous Windows 8 Peut-on exécuter le code sous Windows 8 Apr 15, 2025 pm 07:24 PM

VS Code peut fonctionner sur Windows 8, mais l'expérience peut ne pas être excellente. Assurez-vous d'abord que le système a été mis à jour sur le dernier correctif, puis téléchargez le package d'installation VS Code qui correspond à l'architecture du système et l'installez comme invité. Après l'installation, sachez que certaines extensions peuvent être incompatibles avec Windows 8 et doivent rechercher des extensions alternatives ou utiliser de nouveaux systèmes Windows dans une machine virtuelle. Installez les extensions nécessaires pour vérifier si elles fonctionnent correctement. Bien que le code VS soit possible sur Windows 8, il est recommandé de passer à un système Windows plus récent pour une meilleure expérience de développement et une meilleure sécurité.

L'extension VScode est-elle malveillante? L'extension VScode est-elle malveillante? Apr 15, 2025 pm 07:57 PM

Les extensions de code vs posent des risques malveillants, tels que la cachette de code malveillant, l'exploitation des vulnérabilités et la masturbation comme des extensions légitimes. Les méthodes pour identifier les extensions malveillantes comprennent: la vérification des éditeurs, la lecture des commentaires, la vérification du code et l'installation avec prudence. Les mesures de sécurité comprennent également: la sensibilisation à la sécurité, les bonnes habitudes, les mises à jour régulières et les logiciels antivirus.

Le code Visual Studio peut-il être utilisé dans Python Le code Visual Studio peut-il être utilisé dans Python Apr 15, 2025 pm 08:18 PM

VS Code peut être utilisé pour écrire Python et fournit de nombreuses fonctionnalités qui en font un outil idéal pour développer des applications Python. Il permet aux utilisateurs de: installer des extensions Python pour obtenir des fonctions telles que la réalisation du code, la mise en évidence de la syntaxe et le débogage. Utilisez le débogueur pour suivre le code étape par étape, trouver et corriger les erreurs. Intégrez Git pour le contrôle de version. Utilisez des outils de mise en forme de code pour maintenir la cohérence du code. Utilisez l'outil de liaison pour repérer les problèmes potentiels à l'avance.

Comment exécuter des programmes dans Terminal Vscode Comment exécuter des programmes dans Terminal Vscode Apr 15, 2025 pm 06:42 PM

Dans VS Code, vous pouvez exécuter le programme dans le terminal via les étapes suivantes: Préparez le code et ouvrez le terminal intégré pour vous assurer que le répertoire de code est cohérent avec le répertoire de travail du terminal. Sélectionnez la commande Run en fonction du langage de programmation (tel que Python de Python your_file_name.py) pour vérifier s'il s'exécute avec succès et résoudre les erreurs. Utilisez le débogueur pour améliorer l'efficacité du débogage.

Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisation Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisation Apr 16, 2025 am 12:12 AM

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Peut-on utiliser pour mac Peut-on utiliser pour mac Apr 15, 2025 pm 07:36 PM

VS Code est disponible sur Mac. Il a des extensions puissantes, l'intégration GIT, le terminal et le débogueur, et offre également une multitude d'options de configuration. Cependant, pour des projets particulièrement importants ou un développement hautement professionnel, le code vs peut avoir des performances ou des limitations fonctionnelles.

See all articles