“笨办法”学Python 3 ——练习 17 名称,变量,代码,函数

这段博客介绍了如何使用Python进行文件复制操作,包括检查文件是否存在、读取文件内容、写入新文件,并探讨了如何简化脚本。通过示例代码展示了如何从一个文件读取内容并写入另一个文件,同时讨论了文件关闭的重要性。还提到了在不同操作系统中查看文件内容的方法,如Linux下的'cat'命令和Windows下的'type'命令。
摘要由CSDN通过智能技术生成

练习17 源代码


from sys import argv
from os.path import exists  #引入exists函数,如果文件存在,返回True,不存在返回False

script, from_file, to_file = argv

print(f"Copying from {from_file} to {to_file}")  #打印复印文件名称,粘贴的文件名称

#we could do these two on one line, how?
in_file = open(from_file) #打开文件
indata = in_file.read()  #阅读文件(内容)

print(f"The input file is {len(indata)} bytes long") #len(),得到字符串的长度

print(f"Does the output file exist? {exists(to_file)}") #exist()函数,文件存在返回True,不存在返回False
print("Ready, hit RETURN to continue, CTRL-C to abort.")
input() #input上述字符串内容

out_file = open(to_file, 'w') #只写模式打开文件,若文件存在会被覆盖,不存在会创建
out_file.write(indata) #写入indata变量的内容

print("Alright, all done.")

#关闭,保存文件
out_file.close() 
in_file.close()

输出结果

C:\Users\limin>python C:\Users\limin\Desktop\Python3_exercises\ex17.py C:\Users\limin\Desktop\Python3_exercises\test.txt C:\Users\limin\Desktop\Python3_exercises\new_file.txt
Copying from C:\Users\limin\Desktop\Python3_exercises\test.txt to C:\Users\limin\Desktop\Python3_exercises\new_file.txt
The input file is 20 bytes long
Does the output file exist? False
Ready, hit RETURN to continue, CTRL-C to abort.

Alright, all done.

文件内容:This is a test file.

知识点:

  1. exists()函数:如果文件存在,返回True,不存在返回False
from os.path import exists

2.len()函数,提取计算字符串的长度
3.复制文件内容时,中间放个变量,将内容赋值给变量再写入到新文件即可。
4.终端echo命令——清空文件再写入内容,若无该文件创建新文件
5.终端cat(Linux)和终端type(Windows系统)——打印文件内容。

附加练习

  1. 简化脚本:
from sys import argv
from os.path import exists 

script, from_file, to_file = argv
in_file = open(from_file) #打开文件
indata = in_file.read()  #阅读文件(内容)
out_file = open(to_file, 'w') #只写模式打开文件,若文件存在会被覆盖,不存在会创建
out_file.write(indata) #写入indata变量的内容
#关闭,保存文件
out_file.close() 
in_file.close()
  1. 看看你把这个脚本缩到多短,我可以把它变成一行。
    可以使用“分号;”写成一行。

3.注意“你会看到”部分,我用了 cat,这是一种把文件打印到屏幕的简单办法,你可以输入 man cat 来看看关于这个命令的作用。
终端 echo 命令可以实现清空再写入内容到文件(如果文件不存在,则创建一个文件), 终端cat 可以实现显示文件内容(Linux/Mac Os系统)==终端type 打印整个文件(Windows系统)

C:\Users\limin>echo "Yes">C:\Users\limin\Desktop\Python3_exercises\test.txt

C:\Users\limin>type C:\Users\limin\Desktop\Python3_exercises\test.txt
"Yes"

4.为什么得在代码里写 out_file.close() ?
因为之前用了open函数,若没关闭,程序没结束之前再打开会出错。

常见问题

  1. 但我试着把这些代码缩短的时候,我在关闭文件时遇到了错误。 你可能用了 indata = open(from_file).read(),这意味着你不需要在之后再输入 in_file.close() ,因为你已经到了脚本的最后。一旦那一行运行过之后,它就已经被 Python 关掉了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值