python模块

import sys

print('命令行参数如下:')
for i in sys.argv:
print(i)

print('\n\nPython 路径为:', sys.path, '\n')

引用几个指定函数

from fibo import fib, fib2
fib(500)

内置的函数 dir() 可以找到模块内定义的所有名称

  • str(): 函数返回一个用户易读的表达形式。
  • repr(): 产生一个解释器易读的表达形式。
>> s = 'Hello, Runoob'
>>> str(s)
'Hello, Runoob'
>>> repr(s)
"'Hello, Runoob'"
>>> str(1/7)
'0.14285714285714285'
>>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'x 的值为: ' + repr(x) + ', y 的值为:' + repr(y) + '...'
>>> print(s)
x 的值为: 32.5, y 的值为:40000...
>>> # repr() 函数可以转义字符串中的特殊字符
... hello = 'hello, runoob\n'
>>> hellos = repr(hello)
>>> print(hellos)
'hello, runoob\n'
>>> # repr() 的参数可以是 Python 的任何对象
... repr((x, y, ('Google', 'Runoob')))
"(32.5, 40000, ('Google', 'Runoob'))"

rjust() 方法, 它可以将字符串靠右, 并在左边填充空格。

>> for x in range(1, 11):
... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')
... # 注意前一行 'end' 的使用
... print(repr(x*x*x).rjust(4))
...
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
>>> print('{}网址: "{}!"'.format('菜鸟教程', 'www.runoob.com'))
菜鸟教程网址: "www.runoob.com!"
>>> print('{0} 和 {1}'.format('Google', 'Runoob'))
Google 和 Runoob
>>> print('{1} 和 {0}'.format('Google', 'Runoob'))
Runoob 和 Google

在 : 后传入一个整数, 可以保证该域至少有这么多的宽度。 用于美化表格时很有用。

>>> table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
>>> for name, number in table.items():
... print('{0:10} ==> {1:10d}'.format(name, number))
...
Google ==> 1
Runoob ==> 2
Taobao ==> 3

读取键盘输入

str = input(“请输入:”);

读和写文件

open(filename, mode)

  • r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
  • w
    打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
  • a
    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

打开一个文件

f = open("/tmp/foo.txt", "w")
f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
str = f.read()//用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。
print(str)

关闭打开的文件

f.close()

f.readline() 会从文件中读取单独的一行。换行符为 ‘\n’。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。
str = f.readline()
print(str)

  • f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。
    f.seek() 如果要改变文件指针当前的位置, 可以使用 f.seek(offset, from_what) 函数。
    from_what
    的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,
>>> f = open('/tmp/foo.txt', 'rb+')
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5) # 移动到文件的第六个字节
5

当处理一个文件对象时, 使用 with 关键字是非常好的方式。
文件自动close

with open(‘/tmp/foo.txt’, ‘r’) as f:
read_data = f.read()

writelines() 方法用于向文件中写入一序列的字符串。

fo = open("test.txt", "w")
print ("文件名为: ", fo.name)
seq = ["菜鸟教程 1\n", "菜鸟教程 2"]
fo.writelines( seq )

关闭文件

fo.close()

read()

  • 如果未给定参数 size 或 size 为负数则读取文件所有内容。
fo = open("runoob.txt", "r+")
print ("文件名为: ", fo.name)

line = fo.read(10)
print ("读取的字符串: %s" % (line))

fo = open("runoob.txt", "r")
print ("文件名为: ", fo.name)
for line in fo.readlines(): #依次读取每行
line = line.strip() #去掉每行头尾空白
print ("读取的数据为: %s" % (line))

# 关闭文件
fo.close()
  • tell() 方法返回文件的当前位置,即文件指针当前位置。
    truncate() 方法用于从文件的首行首字节开始截断,截断文件为 size 个字节,
    无 size 表示从当前位置截断; 截断之后 V
    后面的所有字节被删除,其中 Widnows 系统下的换行代表2个字节大小。 。

捕获异常

while True:
try:
x = int(input("请输入一个数字: "))
break
except ValueError:
print("您输入的不是数字,请再次尝试输入!")

以下实例在 try 语句中判断文件是否可以打开,如果打开文件时正常的没有发生异常则执行 else 部分的语句,读取文件内容

for arg in sys.argv[1:]:
try:
f = open(arg, 'r')
except IOError:
print('cannot open', arg)
else:
print(arg, 'has', len(f.readlines()), 'lines')
f.close()


try:
runoob()
except AssertionError as error:
print(error)
else:
try:
with open('file.log') as file:
read_data = file.read()
except FileNotFoundError as fnf_error:
print(fnf_error)
finally:
print('这句话,无论异常是否发生都会执行。')

raise 语句抛出一个指定的异常。

字符串操作

list=['a','mmmm','iope','hero','koplk']
print(','.join(list))
s=','.join(list)
print(s.split(','))