python从文件中读取数据排序(python读取文件并且排序)

http://www.itjxue.com  2023-03-29 22:58  来源:未知  点击次数: 

python 读取csv文件,并按行数据进行排序

import csv

list=[]

with open('tttpsi.csv', encoding='utf-8') as file:

? ? f_csv = csv.reader(file)

? ? for i, rows in enumerate(f_csv):

? ? ? ? if i = 1:

? ? ? ? ? ? # new_row = []

? ? ? ? ? ? row = rows[1:-1]

? ? ? ? ? ? # print(row)

? ? ? ? ? ? row.sort(reverse=True) #reverse=True 降序排序? 默认是升序排序

? ? ? ? ? ? row_1=row[0:5] #取前五个数值,如果想全部保留,则去掉[0:5]

? ? ? ? ? ? # print(row_1)

? ? ? ? ? ? list.append(row_1)

? ? print(list)

with open('mescpsisort.csv', 'w', encoding='utf8', newline='') as f2:

? ? f_csv2 = csv.writer(f2)

? ? f_csv2.writerows(list)

python逐个计算文件夹内的文件内数据

我可以帮你解决这个问题 但我有两个问题要问

第一个问题:每个文件大约有多大

第二个问题:你的目的是想计算每行的倒数第二个数据的总和 其中如果大于5000并后为B 则把总数+1 是M则总数-1

python 读取文件 给数字排序

文件这样子:

代码:

fl = open('luciatest1.txt')

l = []

sortedl = []

for lines in fl.readlines():

? ?lines = lines.replace("\n", "")

? ?l.append(lines)

print('\n', 'the original file is:', l)

sortedl = sorted(l)

print('\n', 'the sorted file is:', sortedl)

运行结果:

Python如何从文件读取数据

1.1 读取整个文件

要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下)

PI_DESC.txt

3.1415926535

8979323846

2643383279

5028841971

file_reader.py

with open("PI_DESC.txt") as file_object:

contents = file_object.read()

print(contents)

我们可以看出,读取文件时,并没有使用colse()方法,那么未妥善的关闭文件,会不会导致文件收到损坏呢?在这里是不会的,因为我们在open()方法前边引入了关键字with,该关键字的作用是:在不需要访问文件后将其关闭

1.2文件路径

程序在读取文本文件的时候,如果不给定路径,那么它会先在当前目录下进行检索,有时候我们需要读取其他文件夹中的路径,例如:

现在文件PI_DESC.txt存储在python目录的子文件夹txt中

那么我们读取文本内容的代码得修改为:

with open("txt\PI_DESC.txt") as file_object:

contents = file_object.read()

print(contents)

给open参数传递的参数得给相对路径

在Windows中,使用反斜杠(\),但是由于python中,反斜杠被视为转义字符,在Windows最好在路径开头的单(双)引号前加上r

相对路径:即相对于程序文件的路径

绝对路径:即文本在硬盘上存储的路径

使用绝对路径的程序怎么写呢 ?

with open(r"D:\python\txt\PI_DESC.txt") as file_object:

contents = file_object.read()

print(contents)

1.3逐行读取

读取文件时,可能需要读取文件中的每一行,要以每一行的方式来检查文件或者修改文件,那么可以对文件对象使用for循环

file_path = 'txt\PI_DESC.txt'with open(file_path) as file_object:

for line in file_object:

print(line)

程序运行结果如下:

通过运行结果我们可以看出,打印结果中间有很多空白行,这些空白行是怎么来的呢?因为在这个文件中,每行的末尾都有一个看不见的换行符,而print语句也会加一个换行符,因此每行末尾就有2个换行符:一个来自文件,另外一个来自print,消除这些换行符,只需要使用方法rstrip()

file_path = 'txt\PI_DESC.txt'with open(file_path) as file_object:

for line in file_object:

print(line.rstrip())

打印结果

通过运行结果我们可以看出,打印结果中间有很多空白行,这些空白行是怎么来的呢?因为在这个文件中,每行的末尾都有一个看不见的换行符,而print语句也会加一个换行符,因此每行末尾就有2个换行符:一个来自文件,另外一个来自print,消除这些换行符,只需要使用方法rstrip()

file_path = 'txt\PI_DESC.txt'with open(file_path) as file_object:

for line in file_object:

print(line.rstrip())

打印结果

1.4创建一个包含文件各行内容的列表

使用关键字with时,open()返回的文件对象只能在with代码块可用,如果要在with代码块外访问文件的内容,可在with块中将文件各行存储在一个列表,并在with代码块外使用该列表

file_path = 'txt\PI_DESC.txt'with open(file_path) as file_object:

lines = file_object.readlines()for line in lines:

print(line.rstrip())

1.5使用文件的内容

在上面一节中我们提到把数据提取到内存中,那么我们就可以对数据进行随心所欲的操作了

需要:将圆周率连在一起打印出来(删除空格),并打印其长度

file_path = 'txt\PI_DESC.txt'with open(file_path) as file_object:

lines = file_object.readlines()pi_str = ''for line in lines:

pi_str += line.strip()print(pi_str.rstrip())print(len(pi_str.rstrip()))

file_path = 'txt\PI_DESC.txt'with open(file_path) as file_object:

lines = file_object.readlines()pi_str = ''for line in lines:

pi_str += line.strip()print(pi_str.rstrip())print(len(pi_str.rstrip()))

注意最后print语句并没有缩进,如果是缩进的话就会每取一行打印一次

打印效果如下

python 从txt中读取数据到 list 中

list1,list2,list3.... 有多少行事先知道?

a?=?open('myfile.txt')

lines?=?a.readlines()

lists?=?[]#直接用一个数组存起来就好了

for?line?in?lines:

????????lists.append(line.split())

print(lists)

Python实现txt文件读取数字,排序,求均值?

python用法非常简单。

代码如下:

import math

f=open("1.txt")

s=f.read()

nums=s.split(" ")

sum=0

count=len(nums)

min=-99999999

for num in nums:

sum=sum+int(num)

avg=math.floor(sum/count)

nums.sort(key=int)

result=''

f=open("2.txt","w")

reault=result+' '.join(nums)

result=str(result)+" "+str(avg)

f.write(result)

这样就可以了。

(责任编辑:IT教学网)

更多

推荐Illustrator教程文章