Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in dateibezogene Verarbeitungsvorgänge in Python (mit Code)

Einführung in dateibezogene Verarbeitungsvorgänge in Python (mit Code)

不言
不言nach vorne
2018-10-27 16:07:562296Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in verwandte Dateiverarbeitungsvorgänge (mit Code). Ich hoffe, er wird Ihnen als Referenz dienen.

open()-Methode

Python open()-Methode wird verwendet, um eine Datei zu öffnen und das Dateiobjekt zurückzugeben. Diese Funktion muss während der Dateiverarbeitung verwendet werden kann nicht geöffnet werden und es wird ein OSError ausgegeben.

Hinweis: Achten Sie bei Verwendung der open()-Methode darauf, das Dateiobjekt zu schließen, d. h. die close()-Methode aufzurufen.

Die übliche Form der open()-Funktion besteht darin, zwei Parameter zu empfangen: Dateiname (Datei) und Modus (Modus).
Das vollständige Syntaxformat lautet:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
opener:
>>> with open('F://lixu.txt','r') as f:
...     print(f.read())
...
大家好,我叫李*!

>>> try:
...     f = open('F://lixu.txt',mode='r')
...     print(f.read())
... finally:
...     if f:
...         f.close()
...
大家好,我叫李*!
def readData(self,datafile = None):
        """
        read the data from the data file which is a data set
        """
        self.datafile = datafile or self.datafile
        self.data = []
        for line in open(self.datafile):
            userid,itemid,record,_ = line.split()
            self.data.append((userid,itemid,int(record)))

read()

Die Methode read() wird verwendet, um die angegebene Anzahl von Bytes aus der Datei zu lesen, falls nicht gegeben Wenn gesetzt oder negativ, werden alle gelesen.

>>> with open('F://lixu.txt','r') as f:
...     print(f.read())
...
大家好,我叫李*!

readline()

Die Methode readline() wird verwendet, um eine ganze Zeile aus einer Datei zu lesen, einschließlich der „n“ Zeichen. Wenn ein nicht negatives Argument angegeben wird, wird die Anzahl der Bytes der angegebenen Größe zurückgegeben, einschließlich „n“ Zeichen.

文件内容:
1:www.runoob.com
2:www.runoob.com
3:www.runoob.com
4:www.runoob.com
5:www.runoob.com

# 打开文件
fo = open("runoob.txt", "rw+")
print "文件名为: ", fo.name

line = fo.readline()
print "读取第一行 %s" % (line)

line = fo.readline(5)
print "读取的字符串为: %s" % (line)

# 关闭文件
fo.close()

文件名为:  runoob.txt
读取第一行 1:www.runoob.com
读取的字符串为: 2:www

readlines()

Die Methode readlines() wird verwendet, um alle Zeilen (bis zum Endzeichen EOF) zu lesen und eine Liste zurückzugeben, die von Python verwendet werden kann for… in … Struktur wird verarbeitet.
Wenn das Endzeichen EOF angetroffen wird, wird eine leere Zeichenfolge zurückgegeben.

def file2matrix(filename):
    """
    从文件中读入训练数据,并存储为矩阵
    """
    fr = open(filename)
    arrayOlines = fr.readlines()
    numberOfLines = len(arrayOlines)   #获取 n=样本的行数
    returnMat = zeros((numberOfLines,3))   #创建一个2维矩阵用于存放训练样本数据,一共有n行,每一行存放3个数据
    classLabelVector = []    #创建一个1维数组用于存放训练样本标签。  
    index = 0
    for line in arrayOlines:
        # 把回车符号给去掉
        line = line.strip()    
        # 把每一行数据用\t分割
        listFromLine = line.split('\t')
        # 把分割好的数据放至数据集,其中index是该样本数据的下标,就是放到第几行
        returnMat[index,:] = listFromLine[0:3]
        # 把该样本对应的标签放至标签集,顺序与样本集对应。
        classLabelVector.append(int(listFromLine[-1]))
        index += 1
    return returnMat,classLabelVector

Unterschied

>>> f = open('F://lixu.txt',mode='r')
>>> line2 = f.readline()
>>> print(line2)
大家好,我叫李*!

>>> f = open('F://lixu.txt',mode='r')
>>> line = f.read()
>>> print(line)
大家好,我叫李*!

啦啦啦



>>> f = open('F://lixu.txt',mode='r')
>>> line = f.readlines()
>>> print(line)
['大家好,我叫李*!\n', '\n', '啦啦啦\n', '\n', '\n']

Das obige ist der detaillierte Inhalt vonEinführung in dateibezogene Verarbeitungsvorgänge in Python (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen