如何使这个代码简单地在Python中使用argv,raw_input(),f.write()

时间:2016-03-23 16:07:28

标签: python

我想要的:

  • 将行写入文件
  • 只是代码
  • 如果代码不需要argv或其他一些

    ,那就没问题

    这是我的代码:

    from sys import argv
    
    script, file_name = argv
    
    target = open(file_name, 'w')
    
    while True:
        line = raw_input()
        target.write(line)
        target.write("\n")
        if line.strip() == '':
            break
    

我发现了两个关于它的问题,但我是Python的新学习者,我不知道如何在这些相关问题中结合答案中的逻辑。

write multiple lines in a file

Raw input across multiple lines

希望我能表达清楚。谢谢。

2 个答案:

答案 0 :(得分:1)

您的代码可以使用,但如果您想使用linked questions中的 writelines iter 逻辑,则可以使用循环使用iter(raw_input,""),它将循环直到空字符串:

from sys import argv
script, file_name = argv

with open(file_name, 'w') as f:
    f.writelines(line+"\n" for line in iter(raw_input,""))

iter(raw_input,"")表示链接一个无限的while循环,它将继续询问输入,直到用户只是命中返回,file.writelines采用一系列字符串来写我们通过使用a generator expression传递

如果你要使用file.write,你只需再次遍历iter(raw_input, "")并写入循环:

with open(file_name, 'w') as f:
    for line in iter(raw_input, ""):
        f.write(line+"\n")

答案 1 :(得分:-1)

如果你只想写,那么这段代码应该没问题。这段代码从用户那里获取文件名,然后逐行将数据写入文件。当用户没有输入数据时,执行停止。

file_name = raw_input("Enter the file name")
target = open(file_name, 'w')
while True:
     line = raw_input("enter data")
     target.write(line)
     target.write("\n")
     if line.strip() == '':
         break
target.close()