Opérations de lecture et d'écriture de fichiers en Python

不言
Libérer: 2018-04-28 14:33:18
original
1677 Les gens l'ont consulté

Cet article présente principalement les opérations de lecture et d'écriture de fichiers en Python, et la méthode d'opération de lecture des données à partir de fichiers. Cet article vous le présente en détail à travers une combinaison d'exemples et de texte. Les amis qui en ont besoin peuvent s'y référer. Suivant

Lire les données du fichier

Lire l'intégralité du fichier

On suppose ici qu'il existe un fichier texte nommé 'pi_digits.txt' dans le répertoire courant. Les données qu'il contient sont les suivantes :

3.1415926535
8979323846.
2643383279


with open('pi_digits.txt') as f: # 默认模式为‘r',只读模式
  contents = f.read() # 读取文件全部内容
  print contents # 输出时在最后会多出一行(read()函数到达文件末会返回一个空字符,显示出空字符就是一个空行)
  print '------------'
  print contents.rstrip() # rstrip()函数用于删除字符串末的空白
Copier après la connexion


3.1415926535
8979323846
2643383279
- ----- ------
3.1415926535
8979323846
2643383279

Lire ligne par ligne

Oui Lire les données ligne par ligne en boucle :


with open('pi_digits.txt') as f:
  for line1 in f:
    print line1 # 每行末尾会有一个换行符
  print '------------'
  for line2 in f:
    print line2.rstrip() # 此时文件已经读完,line2指向文本末尾,因此不会有输出
Copier après la connexion


3.1415926535

8979323846

2643383279

---------------------

Lors de la lecture d'un fichier, cela équivaut à avoir un pointeur enregistrant la position de lecture où qu'il aille, ce pointeur pointera vers ce côté. Lorsqu'il continuera à lire les données, il continuera à lire à partir de cette position, donc la sortie dans la deuxième boucle du code ci-dessus. est vide. Modifiez légèrement le code ci-dessus comme suit :


with open('pi_digits.txt') as f:
  for line1 in f:
    print line1
  print '------------'
with open('pi_digits.txt') as f: # 需要重新打开文本进行读取
  for line2 in f:
    print line2.rstrip() # 删除字符串末尾的空白
Copier après la connexion


3.1415926535

8979323846

2643383279

------------
3.1415926535
8979323846
2643383279

Le code ci-dessus est équivalent au premier lecture Après la récupération, fermez le fichier et rouvrez-le en lecture. Vous pouvez également utiliser la fonction readline() pour lire les données ligne par ligne, comme suit :


with open('pi_digits.txt') as f: 
  # readline()每一次读取一行数据,并指向该行末尾
  line1 = f.readline() # 读取第一行数据(此时已经指向第一行末尾)
  line2 = f.readline() # 从上一次读取末尾开始读取(第二行)
  print line1.rstrip()
  print line2.rstrip()
Copier après la connexion


3.1415926535
8979323846

Parfois, nous souhaitons lire toutes les données en même temps et les stocker séparément pour les opérations ultérieures. Bien sûr, cela peut être réalisé avec la boucle ci-dessus, mais python fournit une méthode de lecture plus simple. ():


with open('pi_digits.txt') as f: 
  lines = f.readlines() # 读取文本中所有内容,并保存在一个列表中,列表中每一个元素对应一行数据
print lines # 每一行数据都包含了换行符
print '------------'
for line in lines:
  print line.rstrip()  
print '------------'
pi_str = '' # 初始化为空字符
for line in lines:
  pi_str += line.rstrip() #字符串连接
print pi_str
Copier après la connexion


['3.1415926535n', '8979323846n', '2643383279n']
--- ----------
3.1415926535
8979323846
2643383279
------------
3.141592653589793238462643383279

Écrire des données dans un fichier

Il existe plusieurs modes différents pour écrire des données. Les plus couramment utilisés sont w' et « a », qui signifient respectivement. effacer les données originales puis les écrire Après avoir saisi et écrit les données dans les données originales :


filename = 'write_data.txt'
with open(filename,'w') as f: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
  f.write("I am Meringue.\n")
  f.write("I am now studying in NJTECH.\n")
Copier après la connexion


À ce moment. , un fichier texte 'write_data.txt sera créé sous le chemin actuel' et écrira les données dans le fichier comme suit :

Je m'appelle Meringue.
J'étudie maintenant à NJTECH.

Continuer ci-dessous Ajouter de nouvelles données au fichier :


with open(filename,'a') as f: # 'a'表示append,即在原来文件内容后继续写数据(不清楚原有数据)
  f.write("I major in Machine learning and Computer vision.\n")
Copier après la connexion


Le contenu du fichier en ce moment est :

Je m'appelle Meringue.
Je suis maintenant étudiant à NJTECH.
Je me spécialise en apprentissage automatique et vision par ordinateur.

Recommandations associées :

Exemple de fonctions de lecture, de découpe et de recadrage d'images implémentées par Python à l'aide de matplotlib



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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!