python读取一个存储若干数字的文件(python读取一个存储若干数字

http://www.itjxue.com  2023-04-04 02:50  来源:未知  点击次数: 

怎么用python直接读取txt文件中的数字

#?-*-?coding:utf-8?-*-

f=open('test.txt')

s?=?f.readline()

print(s)

while?s!='\n':

?????arr=s.split('?')

?????a1=arr[0]

?????a2=arr[1].replace('\n','')?#readline?读取文件的时候,默认加上“\n"

?????print(a1)

?????print(a2)

?????s=f.readline()

读取test.txt 赋值给变量a1,a2

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,然后5个list周期性读取?

f?=?'data.txt'

with?open(f,'r')?as?f1:

l1?=?f1.read().replace('\n','?')

l2?=?l1.split()

for?i?in?range(0,len(l2),5):

l3?=?l2[i:i+5]

print(l3)

如插入中的代码所示,

第一行代码假设你的数据文件名为data.txt,

第二行的代码为以只读方式打开文件,

第三行代码的作用是读取文件到字符串,然后把其中的换行符用空格表示,以便可以用5个数一行输出,

第四行代码是把字符串中的各个数字分开来作为列表赋值给l2,

剩下的三行代码就是以每行五个数字列表,循环输出,知道数据结束。

with.....as......语句用于上下文管理器,在它里面的语句执行结束后,文件会自动关闭,其中的range是一个迭代器,通常用于for循环。

python从txt文件中读取数字,并放入list中

背景:

文件内容每一行是由N个单一数字组成的,每个数字之间由制表符区分,比如:

0 ? ?4 ? ?3 ? ?1 ? ?2 ?

2 ? ?1 ? ?0 ? ?3 ?

1 ? ?2 ? ?0 ?

……

现在需要将每一行数据存为一个list,然后所有行组成一个大的list。

工具:

1.strip():用于移除字符串头尾指定的字符,默认为空格,返回是字符串。

2.split():通过指定分隔符对字符串进行切片,返回是字符串组成的list。

实例:

某文件data.txt 中存放了若干个整数,各整数之间使用英文逗号分割,用python编写程序编写程序?

大致如下:

# 读取文件

file = r"D:\folderpath\data.txt"

with open(file, "r") as f:

a = [i.strip("\n").split(",") for i in f.readlines()]

上述操作后将得到一个嵌套列表,如:[['1', '12'], ['1', '3'], ['5', '2']]

#展开列表,并排序 eg.[1, 1, 2, 2, 3, 4, 4]

b =sorted( [int(i) for j in a for i in j])

# output

outfile = r"d:\test\output.txt"

with open(outfile,"w") as o:

for i in b:

j = str(i) + "\n"

o.write(j)

(责任编辑:IT教学网)

更多

推荐Flash教程文章