Python读取文件数据

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/824776705486180.png "#left

img

有很多读取文件的方法,我这里给你列举几种,假设我的txt都是helloworld,那么下面的都会输出,适合你刚入门玩一下,如果想读取不同格式的还有一种通用办法。
该博主的帖子我也详细看了,比较符合你现在刚学:https://blog.csdn.net/qq_45011164/article/details/127584512
下面是我编写的code请尝试

with open('file.txt') as f:
    lines = f.readlines()
    for line in lines:
        print(line)

f = open('file.txt', 'r')
for line in f.readlines():
    print(line)



import csv
import json
import pandas as pd
import xml.etree.ElementTree as ET

def read_file(filename):
    with open(filename, 'rb') as f:

        ext = filename.split('.')[-1]
        if ext == 'txt':
            contents = f.read().decode('utf-8')
       
    
        elif ext == 'csv':
            reader = csv.reader(f)
            for row in reader:
                print(row)
         
        elif ext == 'xlsx':
            df = pd.read_excel(f)
          
         
        elif ext == 'json':
            data = json.load(f)
           
        elif ext == 'xml':
            tree = ET.parse(f)
            root = tree.getroot()
         
        else:
            raise ValueError('Unsupported file format')


如果有问题可以后台私信我,抱歉这一段时间需要回复的太多。基本上每个有10多个代码要处理。


#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""

if __name__ == '__main__':
    # 定义一个圆周率,精确到小数点后30位
    pi = "3.141592653589793238462643383279"
    with open("yzl.txt", 'w') as f:
        # 将字符串从小数点位置分成两部分
        integer, decimal = pi.split(".")
        # 在小数点后每10位添加一个换行符
        decimal = "\n".join([decimal[i:i + 10] for i in range(0, len(decimal), 10)])
        # 拼接整数部分和小数部分
        formatted_pi = f"{integer}.{decimal}"
        print(formatted_pi)
        # 写入文件
        f.write(formatted_pi)
        # 关闭流
        f.close()
    print("文件写入成功!")

写入之后的文件

img


# 打开文件
file = open('filename.txt', 'r')
# 读取文件数据
data = file.read()
# 关闭文件
file.close()
# 打印文件数据
print(data)

# 打开文件
file = open('filename.txt', 'r')
# 逐行读取文件数据
line = file.readline()
line = file.readline()
... 
# 关闭文件
file.close()

要读取PNG文件,可以使用Python标准库中的PIL(Python Imaging Library)模块,或者它的升级版Pillow模块。

下面是使用Pillow模块读取PNG文件的示例代码:

from PIL import Image

# 打开PNG文件
img = Image.open('example.png')

# 显示图片大小和格式
print(img.size, img.format)

# 显示图片
img.show()

首先导入Pillow模块,然后使用Image.open()函数打开PNG文件,返回一个Image对象。可以使用size属性获取图片大小,format属性获取图片格式。最后使用show()函数显示图片。

需要注意的是,如果要使用show()函数显示图片,需要安装有图形界面的Python环境,例如Windows下的Anaconda环境或者Linux下的X11环境。如果没有图形界面,可以使用其他方式保存或者处理图片,例如使用save()函数保存图片到文件中,或者使用load()函数加载图片数据到内存中进行处理。

在 Python 中,可以使用内置的 open() 函数来读取文件数据。以下是一个简单的示例:

# 打开文件
file = open('example.txt', 'r')

# 读取文件内容
content = file.read()

# 输出文件内容
print(content)

# 关闭文件
file.close()

在以上代码中,我们首先使用 open() 函数打开了一个名为 example.txt 的文本文件,并指定了读取模式 'r'。然后,我们使用 read() 方法读取了文件的全部内容,并将其存储在变量 content 中。最后,我们输出了文件的内容,并使用 close() 方法关闭了文件。

如果您需要逐行读取文件内容,可以使用 readline()readlines() 方法。例如:

# 打开文件
file = open('example.txt', 'r')

# 逐行读取文件内容
for line in file:
    print(line)

# 关闭文件
file.close()

在以上代码中,我们使用 for 循环和迭代器来逐行读取文件内容,并输出每一行的内容。这里不需要显式地调用 readline()readlines() 方法,因为在文件对象上使用 for 循环时,Python 会自动调用 readline() 方法。

请注意,在读取完文件后,务必使用 close() 方法关闭文件。这样可以避免资源浪费和文件损坏等问题。另外,还有一种更安全的方式是使用 with 语句来打开文件,这样就可以避免忘记关闭文件而导致的问题。例如:

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

在以上代码中,我们使用 with 语句打开了文件,并在语句块结束时自动关闭了文件。这种方式更加简洁和安全,推荐使用。

w是写操作
r是读操作

可以借鉴下

import xlrd   #引入库
ex=xlrd.open_workbook("超市营业额.xls")
sheet_num=ex.nsheets #文件中工作表的个数
print(sheet_num)
sheet_name=ex.sheet_names() #各个工作表的名称
print(sheet_name)
sheet=ex.sheet_by_index(2) #通过索引获取第一个工作表
#输出sheet的形状
print(sheet.nrows,sheet.ncols) 
#获取第一行的数据
row_data=sheet.row_values(0)  #返回给定的行数的单元格数据进行切片
print(row_data)
#获取第二列的数据
col_data=sheet.col_values(1)
print(col_data)
#获取位置为(0,1)单元格的数据
one_data=sheet.cell(0,1) 
print(one_data)


可以试试

import xlrd   #引入库
ex=xlrd.open_workbook("超市营业额.xls")
sheet_num=ex.nsheets #文件中工作表的个数
print(sheet_num)
sheet_name=ex.sheet_names() #各个工作表的名称
print(sheet_name)
sheet=ex.sheet_by_index(2) #通过索引获取第一个工作表
#输出sheet的形状
print(sheet.nrows,sheet.ncols) 
#获取第一行的数据
row_data=sheet.row_values(0)  #返回给定的行数的单元格数据进行切片
print(row_data)
#获取第二列的数据
col_data=sheet.col_values(1)
print(col_data)
#获取位置为(0,1)单元格的数据
one_data=sheet.cell(0,1) 
print(one_data)


常用的读文件就三个,readline,readlines,read

with open(file="填文件路径", mode="r", encoding="utf-8") as fp:
    # 读出一行
    data = fp.readline()
    print(data)
    # 读取多行
    data = fp.readlines()
    print(data)
    # 全部读出来
    data = fp.read()
    print(data)

Python读取文本比较简单,open函数打开文件,然后读取就行了

以下答案由GPT-4.0Plus大模型与博主A努力中.......共同编写:
Python读取文件数据有几种常用方式:

  1. 使用open()函数打开文件,然后读取文件内容:
python
f = open('test.txt', 'r')
content = f.read()
f.close()

  1. 使用with语句打开文件,结束后文件会自动关闭:
python
with open('test.txt', 'r') as f:
    content = f.read()

  1. 按行读取文件内容:
python
with open('test.txt', 'r') as f:
    for line in f:
        print(line)

  1. 使用pandas.read_csv()读取CSV文件:
python
import pandas as pd

df = pd.read_csv('test.csv')

  1. 使用Pickle序列化和反序列化Python对象:
python
# 序列化
import pickle

with open('test.pkl', 'wb') as f:
    pickle.dump(obj, f)

# 反序列化    
with open('test.pkl', 'rb') as f:
    obj = pickle.load(f)

  1. JSON序列化和反序列化:
python
# 序列化
import json

with open('test.json', 'w') as f:
    json.dump(obj, f)

# 反序列化
with open('test.json', 'r') as f:
    obj = json.load(f) 

以上是Python读取各种文件数据的常用方式,包括文本文件、CSV文件、序列化文件等。具体选择哪种方式取决于文件类型和读取需求。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
Python读取文件数据可以通过内置函数open()来实现,该函数会返回一个文件对象,然后可以通过文件对象进行相关操作,比如读取、写入等。

具体步骤如下:

  1. 使用open()函数打开一个文件,指定文件名和打开模式(只读模式、写入模式、追加模式等)
  2. 使用文件对象的read()方法读取文件内容,可以一次性读取整个文件,也可以按照指定的大小分段读取
  3. 处理读取到的文件内容
  4. 使用文件对象的close()方法关闭文件

下面是一个简单的示例代码,以只读模式读取文件,并将每一行的数据输出到控制台:

with open('filename.txt', 'r') as f:
    lines = f.readlines()  # 读取文件内容,返回一个包含每一行的字符串列表
    for line in lines:  # 遍历列表,输出每一行的内容
        print(line.strip())

其中,使用with open()语句可以在结束文件访问后自动关闭文件,避免了手动关闭文件时出现的错误和繁琐的操作。
如果我的回答解决了您的问题,请采纳!