求助大佬,为什么方法一打印不了文件内容而方法二可以
方法一:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
from sys import argv
from os.path import exists
script, from_file, to_file = argv
print(f"Copying from {from_file} to {to_file}")# 打印 Copying from 变量1 to 变量2
# we could do these two on line, how?
in_file = open(from_file)# 打开 文件名为 变量1 的文件并赋值给 in_file
indata = in_file.read() # 读取in_file 文件中的内容
print(f"The input file is {len(indata)} bytes long")# len() 函数:以数值的形式返回你传递的字符串
print(f"Does the output file exist? {exists(to_file)}") # exists() 函数:将文件名字符串作为参数,如果这个文件存在将返回 True,否则返回 False
print("Ready, hit RETURN to continue, CTRL-C to abort.")
input()
out_file = open(to_file, 'w')# 打开文件名为 变量2 的文件只用于写入——'w'
out_file.write(indata) # 把in_file 文件中的内容写入 变量2 文件中
print(out_file.read())# 打印名为 变量2 的文件中的内容,注意文件状态是否为可读写
print("Alright, all done.")
out_file.close()# 关闭名为 变量1 的文件
in_file.close() # 关闭名为 变量2 的文件
------------------------------------------------------------------------------------------------------------------------------
方法二:
------------------------------------------------------------------------------------------------------------------------------
from sys import argv
from os.path import exists
script, from_file, to_file = argv
print(f"Copying from {from_file} to {to_file}")# 打印 Copying from 变量1 to 变量2
# we could do these two on line, how?
in_file = open(from_file)# 打开 文件名为 变量1 的文件并赋值给 in_file
indata = in_file.read() # 读取in_file 文件中的内容
print(f"The input file is {len(indata)} bytes long")# len() 函数:以数值的形式返回你传递的字符串
print(f"Does the output file exist? {exists(to_file)}") # exists() 函数:将文件名字符串作为参数,如果这个文件存在将返回 True,否则返回 False
print("Ready, hit RETURN to continue, CTRL-C to abort.")
input()
out_file = open(to_file, 'w')# 打开文件名为 变量2 的文件只用于写入——'w'
out_file.write(indata) # 把in_file 文件中的内容写入 变量2 文件中
print("Alright, all done.")
out_file.close()# 关闭名为 变量1 的文件
in_file.close() # 关闭名为 变量2 的文件
New_txt = open(to_file)
print(New_txt.read())
本帖最后由 suchocolate 于 2020-10-23 10:06 编辑
方法1:
首先w方式是只写,f.read()读取会报错: io.UnsupportedOperation: not readable
如果换成w+读写模式,写入内容后,指针会跟随写入位置移动,由于out_file是新文件,写完后指针后面没有内容,f.read()只能读取指针之后的内容。
方法2:
想不关闭文件读取到之前的内容,那么就的f.seek(0,0)将指针挪到开头。
当然还有一种方式就是你的方法2,关闭文件再打开,指针默认从文件头读取,所以能打印。
file章节建议仔细看看:https://www.runoob.com/python3/python3-file-methods.html 方法一:由于out_file是刚写完。文件指针指向的是文件末尾,所以读不出来
方法二:New_txt是刚打开文件,文件指针在文件头。所以可以读出来。 suchocolate 发表于 2020-10-23 09:58
方法1:
首先w方式是只写,f.read()读取会报错: io.UnsupportedOperation: not readable
如果换成w+读写 ...
感谢答疑{:10_277:}
页:
[1]