Ausführliche Erklärung zum Lesen und Schreiben von Dateien in Python

零到壹度
Freigeben: 2018-04-04 17:59:29
Original
2388 Leute haben es durchsucht


Dieser Artikel stellt hauptsächlich das Lesen und Schreiben von Dateien in Python vor und erklärt ihn für ziemlich gut. Jetzt werde ich ihn mit Ihnen teilen für alle. Folgen wir dem Editor, um einen Blick darauf zu werfen

Daten aus der Datei lesen

Die gesamte Datei lesen

Es wird davon ausgegangen, dass sich im aktuellen Verzeichnis eine Textdatei mit dem Namen „pi_digits.txt“ befindet. Die darin enthaltenen Daten lauten wie folgt:

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

------------
3.1415926535
8979323846
2643383279
Nach dem Login kopieren

Zeile für Zeile lesen

Sie können Daten Zeile für Zeile durch eine Schleife lesen:

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

8979323846

2643383279

------------
Nach dem Login kopieren

Das Lesen einer Datei entspricht einem Zeiger Aufzeichnen der gelesenen Position: Wo auch immer die Daten gelesen werden, zeigt dieser Zeiger auf diese Seite. Wenn die Daten weiterhin gelesen werden, werden sie weiterhin von dieser Position aus gelesen, sodass die Ausgabe in der zweiten Schleife im obigen Code leer ist . Ändern Sie den obigen Code leicht wie folgt:

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() # 删除字符串末尾的空白
Nach dem Login kopieren
3.1415926535

8979323846

2643383279

------------
3.1415926535
8979323846
2643383279
Nach dem Login kopieren

Der obige Code entspricht dem Schließen der Datei nach dem ersten Lesen und dem erneuten Öffnen zum Lesen. Sie können die Funktion readline() auch wie folgt verwenden, um Daten Zeile für Zeile zu lesen:

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

    print line1.rstrip()    print line2.rstrip()
Nach dem Login kopieren
3.1415926535
8979323846
Nach dem Login kopieren

Manchmal möchten wir alle Daten auf einmal lesen und sie für nachfolgende Vorgänge separat speichern Natürlich kann die obige Schleife implementiert werden, aber Python bietet eine einfachere Methode readlines():

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
Nach dem Login kopieren
['3.1415926535\n', '8979323846\n', '2643383279\n']
------------
3.1415926535
8979323846
2643383279
------------
3.141592653589793238462643383279
Nach dem Login kopieren

Daten in Datei schreiben

Es gibt verschiedene Modi zum Schreiben von Daten , am häufigsten werden w‘ und ‚a‘ verwendet, was jeweils bedeutet, dass die Originaldaten gelöscht und dann geschrieben werden und die Daten in die Originaldaten geschrieben werden:

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")
Nach dem Login kopieren

Zu diesem Zeitpunkt wird ein „write_data“ angezeigt. wird unter dem aktuellen Pfad erstellt und schreibt die Daten wie folgt in die Datei:

I am Meringue.
I am now studying in NJTECH.
Nach dem Login kopieren

Fügen Sie dann weitere neue Daten zur Datei hinzu:

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

Der Inhalt der Datei ist derzeit:

I am Meringue.
I am now studying in NJTECH.
I major in Machine learning and Computer vision.
Nach dem Login kopieren

                                           

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Lesen und Schreiben von Dateien in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage