我必须编写一个程序,接受来自用户的两个文件名作为输入:源文件名和目标文件名。然后,我必须编写一个将源文件的内容复制到目标文件的函数。
程序应该适用于任何大小和类型的文件(甚至是PDF / PNG等二进制格式)。
答案 0 :(得分:0)
要做到这一点,你必须考虑任何类型的文件是"制作"超出字节数。您必须从文件中读取字节,然后将此字节复制到另一个文件。
您可以采用CLI方法:
# program.py
import sys
# Take second and third elements from the arguments array (first one is 'program.py' itself)
sourceFileName = sys.argv[1]
destFileName = sys.argv[2]
# Open file 'sourceFileName' for reading as binary
sourceFile = open(sourceFileName, "rb")
data = sourceFile.read()
sourceFile.close()
# Open (or create if does not exists) file 'destFileName' for writing as binary
destFile = open(destFileName, "wb")
destFile.write(data)
destFile.close()
在这种情况下,您将在命令行中分别将源文件名和目标文件名作为第一个和第二个参数传递,如下所示:
$ python test.py oneFile.txt anotherFile.txt
请注意,onFile.txt
应该存在且anotherFile.txt
可能存在,也可能不存在(如果没有,则会创建)
您也可以采用功能性方法:
# program.py
def copyFile(sourceFileName, destFileName):
# Open file 'sourceFileName' for reading as binary
sourceFile = open(sourceFileName, "rb")
data = sourceFile.read()
sourceFile.close()
# Open (or create if does not exists) file 'destFileName' for writing as binary
destFile = open(destFileName, "wb")
destFile.write(data)
destFile.close()
print("Done!")
# Ask for file names
src = raw_input("Type the source file name:\n")
dst = raw_input("Type the destination file name:\n")
# Call copyFile function
copyFile(src, dst)
您应该考虑在打开之前添加一种检查源文件是否存在的方法。您可以使用os.path.isfile(fileName)
函数执行此操作。
希望它有所帮助!