python基础汇总(二)

注释:#  英文名是octothorpe  

在敲代码的过程中,如果想对一段代码进行注释处理,全选然后 Ctrl+/ 键

cars_not_driven=100

print("There will be",cars_not_driven,"empty cars today.")

输出:

There will be 100 empty cars today.

 

%r    %s   %d等等的应用:他们是一种格式控制工具。让我们看看下面比较完整的格式控制工具集。

%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化字整数
%u 格式化无符号整型
%o 格式化无符号八进制熟
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学记数法格式化浮点数
%p 用十六进制数格式化变量的地址
如果我们不太确定用什么,那么用%s是最保险的,它会把任何数据类型转换为字符串

%r和%s有什么不同?

%r用来调试最好,因为它会显示变量的原始数据,而%s和其他符号则是用来向用户显示输出的。

转义字符  \

错误例子:

print(“I said :“get out!””)   这段代码很明显是不能运行的,因为后面两个引号会被识别为是字符串的边界,所以正确的写法应该是加入转义字符,不影响最终结果的打印。

正确例子:

print("I said:\"get out!\"")

以下你会看到一些经典的转义序列:

\\ 反斜杠(\)
\' 单引号(')
\" 双引号(")
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符

在python3中  已经不支持raw_input()的写法

而是input(),但是你输入进去的数据会被当作字符串处理

所以假如你要把你输入的数据换成一种数据类型的时候,比如整数

int(input())

一般来说,你提问别人的时候,你会输入这样的代码:

print(“What is your name?”)

my_name=input()

其实,你可以合并到一句,进行直接的提问:

my_name=input("What is your name?")

from sys import argv

这一段呢比较有意思,其实就是模块纠缠不清的爱情故事

argv:参数变量。

import语句:将python的特性引入脚本的方法,相当于需要什么就调用什么来用。

还是暴力通俗解释一下吧,from sys import argv你可以理解为:

sys是一个功能包,这句话的意思就是从该功能包中取出argv这个特性来使用,实现相应的功能。

不多BB,我们进入到下一个读取文档的阶段,看看这段代码

from sys import argv #从sys软件包中获取一个argv的功能。

script,filename=argv #输入本文件的名字和想要运行文件的名字。

txt=open(filename) #python open() 函数 可以打开一个外部文件。

print("Here is your file %r:"%filename)
print(txt.read()) #将打开的外部文件的变量 进行变量.read()运行,即可打印外部文件的内容。

print("Type the filename again:")
file_again=input(">")

txt_again=open(file_again)
print(txt_again.read())
 
上文中,我用了txt变量定义一个open()函数。所以这个时候txt就等于你要打开的外部文件了
然后print(txt.read())
你就可以打印出你要打开的外部文件里面的内容了,通常外部文件的类型是txt,其他类型也可以。
可以看看下面的扩展知识:
 
 
以下是其他各种与文件相关的命令:
close---关闭文件。
read---读取文件内容。(可以把结果赋给一个变量)
readline---读取文本文件中的一行。
truncate---清空文件,请小心使用该命令。
write(stuff)---将stuff写入文件。
 
 

那么,看到这儿,很显然了,心中肯定不自觉的萌生出想要进行骚操作的想法。比如打开1.txt外部文件并修改里面的内容:

在argv中,先刚一波这一段 newfile=1.txt,进入正题

txt=open(newfile,‘w’)

这时候有些人就要说了,卧槽,这‘w’是什么JB玩意!

不要慌,这个‘w’乃是逆天改命大法的一个超级字符串……

行吧!‘w’其实就是一个参数,意味着这个文件进入写入模式,可以进行编辑了。

那么我们来看看相关的参数,如下:

open(文件名,'w')是写入模式
open(文件名,'r')是读取模式
open(文件名,'a')是追加模式
open(文件名)是默认模式,访问
 
不过有些人应该会有这样的需求,先把文档里面的内容清空,然后再自己编辑东西加进去
那就加一句
txt.truncate()#用于截断文件并返回截断的字节长度
 
指定长度的话,就从文件的开头开始截断指定长度,其余内容删除;
不指定长度的话,也就是只打一个()就从文件开头开始截断到当前位置,其余内容删除。
 
 
 
哦对,差点忘了,还有要怎么写进去这个外部文件呢?
txt.write()  这就是一个写入操作。
 
最后呢,你如果只是默默改掉txt文件里面的内容,并不想让它一直出现
最后来个拔吊无情的代码,进行关闭它吧!
txt.close()
 
接下来我们进入一个无中生有的阶段,就是将一个存在的txt文档进行一个复制,生成新的txt的文档。
废话不多说,代码来也:
from sys import argv
from os.path import exists#一个神秘的os.path模块,此代码判断对象在不在。

script,from_file,to_file=argv

print("Copying from %s to %s"%(from_file,to_file))#交代想做的事

#we could do these two on one line too,how?
in_file=open(from_file)
indata=in_file.read()#这是一段好代码,你并不需要打印出来,直接赋值 干净利落。

print("The input file is %d bytes long"%len(indata))

print("Does the output file exist?%r"%exists(to_file))
print("Ready,hit RETURN to continue,CTRL-C to abort.")
input()

out_file=open(to_file,'w')#你想要复制到一个新文件,肯定要打开写入模式编辑呀。
out_file.write(indata)

print("Alright,all done.")

out_file.close()#关闭两个外部文件,使整个过程始终停留在这个文件。
in_file.close()

输出的结果:

Copying from 1.txt to new-1.txt
The input file is 98 bytes long
Does the output file exist?False
Ready,hit RETURN to continue,CTRL-C to abort.

Alright,all done.

(可以看到,文件夹里面多了一个new-1.txt文件,内容和1.txt一模一样)

其实呢,这个脚本太特么啰嗦了,有没有道理?

我直接让他进行复制,不要问我那么多问题,我们屌大的也很忙啊!

于是我简化了这段代码如下:

from sys import argv
from os.path import exists#一个神秘的os.path模块,此代码判断对象在不在。

script,old_file,new_file=argv

aa=open(old_file)
fileone=aa.read()
#我遇到过一个很有意思的问题,我想复制一个里面内含中文字符或中文逗号的TXT的时候,
#此处疯狂报错,于是我将TXT里面的内容换成了英文,这段代码成功运行出来。
#待解决问题:复制一个中文TXT。

bb=open(new_file,'w')
bb.write(fileone)

aa.close()
bb.close()

所以,怎么成功复制带有中文的txt文档,目前来说还在探索。虽然我知道,python编码不支持中文汉字甚至一个中文逗号

猜你喜欢

转载自www.cnblogs.com/Masterpaopao/p/9955106.html
今日推荐