打开两个文件名

时间:2015-03-09 03:06:48

标签: python python-3.x

我想构建一个函数,要求用户输入源文件名和目标文件名;打开文件,逐行循环遍历源文件的内容,将每个文件写入目标文件;然后关闭这两个文件。确保所有文件都在try块中发生。如果发生IOError,脚本应该打印一条消息,说明使用其中一个文件时出错,并要求用户再次输入文件名。以下是我到目前为止的情况:

while True:
try:
    file = open(filename)
    line = file.readline()
    while line != "":
        print(line)
        line = file.readline()
    file.close()
    break
except IOError:
    print("There was a problem accessing file '" + filename + "'." + \
          "Please enter a different filename.")
    filename = input("> ")

但是,我不知道如何询问用户1.)用户输入2.)询问文件名和目标文件名3.)将每个源写入目标文件。如果可以帮助..

3 个答案:

答案 0 :(得分:0)

我可以告诉你一些事情。

做输入

inputFileName = str(raw_input("Enter the input file: "))
outputFileName = str(raw_input("Enter the output file name: "))

另外,要了解使用文件,您可以查看好的教程here。 最后,你不应该在while循环中运行你的file = open(filename)。只应在循环中读取行。

答案 1 :(得分:0)

您只需要在现有代码中添加一些内容:

in_filename = input('input from filename: ')
ou_filename = input('output to filename: ')
while True:
  try:
    infile = open(in_filename)
    oufile = open(ou_filename, 'w')
    line = infile.readline()
    while line != "":
        # print(line)
        oufile.write(line)
        line = infile.readline()
    infile.close()
    oufile.close()
    break
  except IOError:
    print("There was a problem accessing file '" + in_filename + "'." + \
          "or maybe '" + ou_filename + "'." + \
          "Please enter different filenames.")
    in_filename = input('input from filename: ')
    ou_filename = input('output to filename: ')

当然,还有很多的东西需要改进 - 例如,通过坚持所有内容都在一个try / except语句中,你不知道,在错误中消息,这两个文件中的哪一个出了问题。

但至少我添加了in_ou_前缀来区分输入和输出,并避免使用内置名称file作为变量名称(践踏)对于初学者而言,内置名称是一个臭名昭着的陷阱,它没有任何问题......直到它突然发生: - )。

答案 2 :(得分:0)

1.2)您可以通过sys.argv sys.argv获取用户输入和两个文件名 3)文件操作。 file