在我的程序中,我打开一个用户输入其名称的文件,计划读取并附加文件(a +)。我使用seek(0)将指针移动到文件的开头,因为它在使用+时从文件末尾开始。然后我使用readline()函数,并检查从该行读取的程序是否在元组中。这是代码:
fileName = input()
fileName += ".txt"
file = open(fileName, "a+")
fileName += ","
print("Opened", fileName, "reading:")
print()
#Reading operation selection
file.seek(0)
operation = file.readline() #Line 0 = operation
if operation not in ('+', '-', '*', '/'):
print("Did not find valid operation in file.")
print("Use a file with valid calculation code:")
continue
我有一个文本文件' file.txt'包含以下内容:
+
12
12
c
当我运行程序并输入' file'时,它返回' Opened file.txt,读取:未在文件中找到有效操作。使用包含有效计算代码的文件:'。 所以,我在一个单独的文件中进行了故障排除并运行了以下代码:
fileName = input()
fileName += ".txt"
file = open(fileName, "a+")
fileName += ","
print("Opened", fileName, "reading:")
print()
#Reading operation selection
file.seek(0)
operation = file.readline() #Line 0 = operation
print(operation)
if operation not in ('+', '-', '*', '/'):
print("Did not find valid operation in file.")
print("Use a file with valid calculation code:")
continue
我运行了这个程序,输入了' file'作为文件名,它返回: 打开file.txt,阅读:
+
Did not find valid operation in file.
Use a file with valid calculation code:
为什么变量操作包含单个字符,即file.txt的第一行,然后是空行?
感谢任何帮助,谢谢!
答案 0 :(得分:1)
那是因为Pythons readline
也会在行尾返回换行符。例如。 readline() -> "+\n"
。
您可以使用rstrip("\n")
删除行中的换行符。例如。 readline().rstrip("\n")
。
答案 1 :(得分:-1)
if operation.strip() not in ('+', '-', '*', '/')
您需要删除换行符。