好的,我有一个.txt文件,我需要将其上的内容添加到列表中,问题是每行只有一个字符,例如,如果我需要" 2+ 3",在.txt中它看起来像这样:
2
+
3
然后我必须将它添加到列表中,以使其看起来像这样[2,+,3]
在我现在的代码中,它以字符串形式添加内容并添加" \ n"在每个列表元素的末尾。我无法找到一种方法来使它将字符添加为int而没有\ n。 这是代码:
def readlist():
count=0
file=open("readfile.txt","r")
list1=[]
line=file.readlines()
list1.append(line)
print(list1)
file.close
(正在阅读的文件中有1(2 + 3)个)
提前感谢您的帮助
答案 0 :(得分:1)
最安全的方法是使用try / except:
out = []
with open("in.txt") as f:
for line in f:
try:
out.append(int(line))
except ValueError:
out.append(line.rstrip())
print(out)
[2, '+', 3]
在转换为int时你不需要去掉空格或换行符,python在这方面是宽容的,所以当我们捕获异常时我们只需要rstrip
新行,因为那时我们有一个运算符。 / p>
另外with
会自动关闭您的文件,这是您在自己的代码中实际上没有做的事情,因为您缺少调用方法file.close
的parens {@ 1}}
答案 1 :(得分:0)
只需添加一些内容即可解决此问题。
首先,每一行在其字符串中都有一个 \ n ,因为它是文件中的新行。要删除此内容,您可以使用rstrip method解释here very well on how it works。
从这里开始,你想要使用 int(line)将字符串转换为int。 This will turn the line into a integer然后您可以根据需要添加到列表中。
现在的问题是选择将哪一行转换为int,哪些是算术运算,例如示例文件中的 + 。
答案 2 :(得分:-1)