将数字文件读入python中的元组中?

时间:2018-10-23 00:01:02

标签: python

我有一个文件,其中包含这样的数字:

5

10

15

20

我知道如何编写读取文件并将数字输入到LIST的代码,但是如果元组不支持append函数,我如何编写读取文件并将数字输入到TUPLE的代码?这就是我到目前为止所得到的:

filename=input("Please enter the filename or path")
file=open(filename, 'r')
filecontents=file.readlines()
tuple1=tuple(filecontents)
print(tuple1)

输出是这样的:

('5\n', '10\n', '15\n', '20\n')

应该是这样:

5,10,15,20

4 个答案:

答案 0 :(得分:0)

如果您已经知道如何制作listint,请像尝试解决问题一样将其转换为tuple

这里的map对象也可以投射到元组,但是它也可以与list一起使用:

filename=input("Please enter the filename or path: ")
with open(filename, 'r') as file:
    filecontents=tuple(map(int, file.read().split()))

print(filecontents)

此外,如果您使用with语句,则无需担心关闭文件(您在代码中也丢失了该部分)

答案 1 :(得分:0)

尝试一下:

s=','.join(map(str.rstrip,file))

演示:

filename=input("Please enter the filename or path: ")
file=open(filename, 'r')
s=tuple(map(str.rstrip,file))
print(s)

示例输出:

Please enter the filename or path: thefile.txt
(5,10,15,20)

答案 2 :(得分:0)

建议使用with open(..)以确保完成后关闭文件。然后使用表达式将返回的列表转换为元组。

filename=input("Please enter the filename or path")
with open(filename, 'r') as f:
    lines = f.readlines()

tup = tuple(line.rstrip('\n') for line in lines)
print(tup)

答案 3 :(得分:0)

如果确定它们是整数,则可以执行以下操作:

filename=input("Please enter the filename or path")
with open(filename, 'r') as f:
    lines = f.readlines()

result = tuple(int(line.strip('\n')) for line in lines)
print(resultt)

此外,如果您有列表,则始终可以将其转换为元组:

t = tuple([1,2,3,4])

因此,您可以构建列表附加元素,最后将其转换为元组