Maison >développement back-end >Tutoriel Python >Introduction aux opérations de traitement liées aux fichiers en Python (avec code)

Introduction aux opérations de traitement liées aux fichiers en Python (avec code)

不言
不言avant
2018-10-27 16:07:562335parcourir

Cet article vous apporte une introduction aux opérations de traitement de fichiers en Python (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Méthode open()

La méthode Python open() est utilisée pour ouvrir un fichier et renvoyer l'objet fichier. Cette fonction doit être utilisée pendant le traitement du fichier. ne peut pas être ouvert et une OSError sera lancée.

Remarque : lorsque vous utilisez la méthode open(), vous devez vous assurer que l'objet fichier est fermé, c'est-à-dire que la méthode close() est appelée.

La forme courante de la fonction open() est de recevoir deux paramètres : le nom du fichier (file) et le mode (mode).
Le format de syntaxe complet est :

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()

la méthode read() est utilisée pour lire le fichier spécifié du fichier Le nombre d'octets, s'il n'est pas donné ou est négatif, tous sont lus. La méthode

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

readline()

readline() est utilisée pour lire une ligne entière d'un fichier, y compris les caractères "n". Si un argument non négatif est spécifié, renvoie le nombre d'octets de la taille spécifiée, y compris les caractères « n ». La méthode

文件内容:
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()

readlines() est utilisée pour lire toutes les lignes (jusqu'au caractère de fin EOF) et renvoyer une liste, qui peut être utilisée par Python pour… dans… structure pour le traitement.
Si le caractère de fin EOF est rencontré, une chaîne vide est renvoyée.

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

Différence

>>> 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']

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer