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

不言
Libérer: 2018-10-27 16:07:56
avant
2291 Les gens l'ont consulté

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:
Copier après la connexion
>>> 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()
...
大家好,我叫李*!
Copier après la connexion
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)))
Copier après la connexion

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())
...
大家好,我叫李*!
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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']
Copier après la connexion

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:csdn.net
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