连接字符串输入的()

连接字符串输入的()

问题描述:

我想要做这样的事情在命令行的结果:连接字符串输入的()

Enter input filename: filename 

当用户指定文件名,这应该使用发生

lines = [line.strip() for line in open('filename.txt')] 

我试着

lines = [line.strip() for line in open('input().txt')] 

,但它只是寻找一个文件名为 '输入()。TXT'

我该如何做这项工作?

感谢

+0

开放( '输入()。TXT') - 是吧?有没有听说过变量和字符串之间的区别? – 2011-05-02 04:24:43

您需要input()是引号外面,然后使用+运营商与'.txt'串连它。此外,它会增加代码的清晰度,以获取文件名,打开文件并在单独的行上读取文件。

filename = input() 
with open(filename + '.txt', 'r') as f: 
    lines = [line.strip() for line in f] 

另外,如果你不使用Python 3,你可能意味着raw_input而不是input

+0

嗨,它在我在shell中运行程序时起作用,但是当我尝试在命令行中运行它时会产生错误。你能告诉我为什么它在shell中运行,而不是在命令行中运行。 – Jay 2011-05-02 04:30:08

+0

@Jay:错误是什么? – icktoofay 2011-05-02 04:31:32

+0

你确定它确实出现错误吗?它可能只是做它应该做得非常快的事情。 – icktoofay 2011-05-02 04:50:14

尝试格式化字符串:

open('{0}.txt'.format(input(), 'r')) 

你不能字符串里直接调用一个函数,所以你必须首先调用函数,然后生成周围结果的字符串。

试试这个:

lines = [ line.strip() for line in open(raw_input("Enter input filename: ")) ]