代码
# 模块包含所有你定义的函数和变量的文件,其后缀名是.py。
# 模块可以被别的程序引入,以使用该模块中的函数等功能
import sys
print("命令行参数:")
for i in sys.argv:
print(i)
print("路径为:", sys.path)
# 当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
import support
support.print_func("Lisi")
# from fibo import fib, fib2
# from fibo import *
import fibo
fibo.fib(1000)
print(fibo.fib2(1000))
print(fibo.__name__)
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))
# {0:2d} 表示第一个参数x的格式。0 代表x,:2d 表示两个宽度的10进制数显示。
# print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))
# ljust() , center(),zfill()会在数字的左边填充 0
print('12'.zfill(5))
# str.format()
# 括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换
print('{}是天下第一的{}'.format('lisi', '厨子'))
print('{1}是天下第一的{0}'.format('lisi', '厨子'))
print('{name}是天下第一的{profession}'.format(name='lisi', profession='厨子'))
import math
print('π的近似值是:{:.3f}'.format(math.pi))
table = {"Google": 1, "Taobao": 2, "Tercent": 3}
for name, order in table.items():
print('{:10} ==> {:7d}'.format(name, order))
print('Tercent: {0[Tercent]};Taobao: {0[Taobao]:d}; Google: {0[Google]}'.format(table))
print('Taobao: {Taobao}; Google: {Google:d}; Tercent: {Tercent}'.format(**table))
# open(filename, mode)读和写文件
'''
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
'''
f = open("dialog.txt", "w")
txt = f.write("Lisi:今天天气好吗?\nWanger:好个锤子!\nLisi:真是个锤子。")
# 返回输入的字符数
print(txt)
f.close()
# f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回
f = open("dialog.txt", "r")
txt = f.read()
print(txt)
f.close()
# f.readline() 会从文件中读取单独的一行
f = open("dialog.txt", "r")
txt = f.readline()
print(txt)
f.close()
# f.readlines() 将返回该文件中包含的所有行。
f = open("dialog.txt", "r")
txt = f.readlines()
print(txt)
f.close()
# 迭代一个文件对象然后读取每行
f = open("dialog.txt", "r")
for line in f:
print(line, end='')
f.close()
# 要写入一些不是字符串的东西, 那么将需要先进行转换
f = open("foo1.txt", "w")
value = ('www.ggggbaby.com', 14)
s = str(value)
s2 = str(table)
# 指针位置
print(f.tell())
f.write(s)
print(f.tell())
f.write(s2)
print(f.tell())
f.close()
# 如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。
# from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:
# seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
# seek(x,1) : 表示从当前位置往后移动x个字符
# seek(-x,2):表示从文件的结尾往前移动x个字符
from urllib import request
response = request.urlopen("http://www.baidu.com/") # 打开网站
fi = open("project.txt", 'w') # open一个txt文件
page = fi.write(str(response.read())) # 网站代码写入
fi.close() # 关闭txt文件
# pickle 模块
# pickle.dump(obj, file, [,protocol])
# pickle.load(file)
import pickle
# 使用pickle模块将数据对象保存到文件
data1 = {'a': [1, 2.0, 3, 4+6j],
'b': ('string', u'Unicode string'),
'c': None}
selfref_list = [1, 2, 3]
selfref_list.append(selfref_list)
output = open('data.pkl', 'wb')
# Pickle dictionary using protocol 0.
pickle.dump(data1, output)
# Pickle the list using the highest protocol available.
pickle.dump(selfref_list, output, -1)
output.close()
import pprint, pickle
#使用pickle模块从文件中重构python对象
pkl_file = open('data.pkl', 'rb')
data1 = pickle.load(pkl_file)
pprint.pprint(data1)
data2 = pickle.load(pkl_file)
pprint.pprint(data2)
pkl_file.close()
结果
命令行参数:
D:/Users/jma/PycharmProjects/test/test.py
路径为: ['D:\\Users\\PycharmProjects\\test', 'D:\\Users\\PycharmProjects\\test', 'D:\\Program Files\\Python\\Python37\\python37.zip', 'D:\\Program Files\\Python\\Python37\\DLLs', 'D:\\Program Files\\Python\\Python37\\lib', 'D:\\Program Files\\Python\\Python37', 'D:\\Users\\PycharmProjects\\test\\venv', 'D:\\Users\\PycharmProjects\\test\\venv\\lib\\site-packages', 'D:\\Users\\PycharmProjects\\test\\venv\\lib\\site-packages\\setuptools-40.8.0-py3.7.egg', 'D:\\Users\\PycharmProjects\\test\\venv\\lib\\site-packages\\pip-19.0.3-py3.7.egg']
Hello! Lisi
我来自另一模块
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]
fibo
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
00012
lisi是天下第一的厨子
厨子是天下第一的lisi
lisi是天下第一的厨子
π的近似值是:3.142
Google ==> 1
Taobao ==> 2
Tercent ==> 3
Tercent: 3;Taobao: 2; Google: 1
Taobao: 2; Google: 1; Tercent: 3
37
Lisi:今天天气好吗?
Wanger:好个锤子!
Lisi:真是个锤子。
Lisi:今天天气好吗?
['Lisi:今天天气好吗?\n', 'Wanger:好个锤子!\n', 'Lisi:真是个锤子。']
Lisi:今天天气好吗?
Wanger:好个锤子!
Lisi:真是个锤子。0
24
64
{'a': [1, 2.0, 3, (4+6j)], 'b': ('string', 'Unicode string'), 'c': None}
[1, 2, 3, <Recursion on list with id=48570952>]