我有一个文件,其中包含这样的数字:
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
答案 0 :(得分:0)
如果您已经知道如何制作list
个int
,请像尝试解决问题一样将其转换为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])
因此,您可以构建列表附加元素,最后将其转换为元组