我想在命令行中执行以下操作:
Enter input filename: filename
当用户指定文件名时,这应该发生
lines = [line.strip() for line in open('filename.txt')]
我尝试使用
lines = [line.strip() for line in open('input().txt')]
但它只是查找名为'input()。txt'
的文件我怎样才能做到这一点?
由于
答案 0 :(得分:4)
您需要input()
在引号之外,然后使用'.txt'
运算符将其与+
连接起来。此外,它还可以提高代码的清晰度,以获取文件名,打开文件,并在单独的行中读取文件。
filename = input()
with open(filename + '.txt', 'r') as f:
lines = [line.strip() for line in f]
此外,如果您不使用Python 3,则可能意味着raw_input
而不是input
。
答案 1 :(得分:2)
尝试格式化字符串:
open('{0}.txt'.format(input(), 'r'))
您无法直接在字符串内部调用函数,因此必须先调用该函数,然后在结果周围生成字符串。
答案 2 :(得分:1)
试试这个:
lines = [ line.strip() for line in open(raw_input("Enter input filename: ")) ]