1. 程式人生 > >文件學習

文件學習

int 接受 3.6 文件讀取 title 代碼 時間 文件的 ping

18、有一個ip.txt,裏面每行是一個ip,實現一個函數,ping 每個ip的結果,把結果記錄存到ping.txt中,格式為ip:0或ip:1 ,0代表ping成功,1代表ping失敗

ip.txt文件:

17.2.2.192
119.75.213.61
17.2.2.193
182.254.50.164
17.2.2.194
60.207.246.98
17.2.2.195
124.193.235.253
17.2.2.196
124.200.112.1

代碼:
def ping(path,filename):
import os
import codecs
i_file_path=path+filename
with codecs.open(i_file_path,“r”,encoding=“utf-8-sig”) as f:
for line in f:
tmp=‘ping ‘+line
data=os.popen(tmp).read()
if “100% 丟失” in data:
ping_flag = “ping failed”
else:
ping_flag=“ping success”
o_file_path=path+“ping.txt”
with open(o_file_path,“a+”,encoding=“utf-8”) as outfile:
outfile.write("******************\n")
tmp2=tmp+":"+ping_flag
outfile.write(tmp2)
outfile.write(data+"\n")
outfile.write("******************\n")

ping(“c:\code\”,“ip.txt”)
print(“success”)

執行結果:
C:\Users\admin\PycharmProjects\untitled1\venv\Scripts\python.exe C:/Users/admin/PycharmProjects/untitled1/test.py
success

Process finished with exit code 0

ping.txt 文件:

ping 17.2.2.192

:ping failed
正在 Ping 17.2.2.192 具有 32 字節的數據:
請求超時。
請求超時。
請求超時。
請求超時。

17.2.2.192 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 0,丟失 = 4 (100% 丟失),

ping 119.75.213.61

:ping success
正在 Ping 119.75.213.61 具有 32 字節的數據:
來自 119.75.213.61 的回復: 字節=32 時間=5ms TTL=56
來自 119.75.213.61 的回復: 字節=32 時間=7ms TTL=56
來自 119.75.213.61 的回復: 字節=32 時間=5ms TTL=56
來自 119.75.213.61 的回復: 字節=32 時間=9ms TTL=56

119.75.213.61 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 5ms,最長 = 9ms,平均 = 6ms

ping 17.2.2.193

:ping failed
正在 Ping 17.2.2.193 具有 32 字節的數據:
請求超時。
請求超時。
請求超時。
請求超時。

17.2.2.193 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 0,丟失 = 4 (100% 丟失),

ping 182.254.50.164

:ping success
正在 Ping 182.254.50.164 具有 32 字節的數據:
來自 182.254.50.164 的回復: 字節=32 時間=14ms TTL=53
來自 182.254.50.164 的回復: 字節=32 時間=11ms TTL=53
來自 182.254.50.164 的回復: 字節=32 時間=13ms TTL=53
來自 182.254.50.164 的回復: 字節=32 時間=12ms TTL=53

182.254.50.164 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 11ms,最長 = 14ms,平均 = 12ms

ping 17.2.2.194

:ping failed
正在 Ping 17.2.2.194 具有 32 字節的數據:
請求超時。
請求超時。
請求超時。
請求超時。

17.2.2.194 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 0,丟失 = 4 (100% 丟失),

ping 60.207.246.98

:ping success
正在 Ping 60.207.246.98 具有 32 字節的數據:
來自 60.207.246.98 的回復: 字節=32 時間=6ms TTL=58
來自 60.207.246.98 的回復: 字節=32 時間=7ms TTL=58
來自 60.207.246.98 的回復: 字節=32 時間=5ms TTL=58
來自 60.207.246.98 的回復: 字節=32 時間=6ms TTL=58

60.207.246.98 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 5ms,最長 = 7ms,平均 = 6ms

ping 17.2.2.195

:ping failed
正在 Ping 17.2.2.195 具有 32 字節的數據:
請求超時。
請求超時。
請求超時。
請求超時。

17.2.2.195 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 0,丟失 = 4 (100% 丟失),

ping 124.193.235.253

:ping success
正在 Ping 124.193.235.253 具有 32 字節的數據:
來自 124.193.235.253 的回復: 字節=32 時間=6ms TTL=113
來自 124.193.235.253 的回復: 字節=32 時間=6ms TTL=113
來自 124.193.235.253 的回復: 字節=32 時間=14ms TTL=113
來自 124.193.235.253 的回復: 字節=32 時間=5ms TTL=113

124.193.235.253 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 5ms,最長 = 14ms,平均 = 7ms

ping 17.2.2.196

:ping failed
正在 Ping 17.2.2.196 具有 32 字節的數據:
請求超時。
請求超時。
請求超時。
請求超時。

17.2.2.196 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 0,丟失 = 4 (100% 丟失),

ping 124.200.112.1

:ping success
正在 Ping 124.200.112.1 具有 32 字節的數據:
來自 124.200.112.1 的回復: 字節=32 時間=29ms TTL=58
來自 124.200.112.1 的回復: 字節=32 時間=8ms TTL=58
來自 124.200.112.1 的回復: 字節=32 時間=6ms TTL=58
來自 124.200.112.1 的回復: 字節=32 時間=8ms TTL=58

124.200.112.1 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 6ms,最長 = 29ms,平均 = 12ms

19、實現DOS命令執行功能,接受輸入命令並執行,然後把執行結果和返回碼打印到屏幕
import os
while 1:
command=input(“請輸入DOS命令或E-退出鍵:”)
if command==“E”:
print(“退出程序!”)
break
else:
data=os.popen(command).read()
print("***************")
print(data)
print("***************")

執行結果:
C:\Users\admin\PycharmProjects\untitled1\venv\Scripts\python.exe C:/Users/admin/PycharmProjects/untitled1/test.py
請輸入DOS命令或E-退出鍵:dir

驅動器 C 中的卷是 OS
卷的序列號是 EC97-F6CA

C:\Users\admin\PycharmProjects\untitled1 的目錄

2018/09/18 21:49

.
2018/09/18 21:49

2018/09/18 21:49
.idea
2018/09/18 21:49 287 test.py
2018/06/30 15:27
venv
1 個文件 287 字節
4 個目錄 38,487,875,584 可用字節
請輸入DOS命令或E-退出鍵:cd c:\code\

請輸入DOS命令或E-退出鍵:dir

驅動器 C 中的卷是 OS
卷的序列號是 EC97-F6CA

C:\Users\admin\PycharmProjects\untitled1 的目錄

2018/09/18 21:49

.
2018/09/18 21:49

2018/09/18 21:50
.idea
2018/09/18 21:49 287 test.py
2018/06/30 15:27
venv
1 個文件 287 字節
4 個目錄 38,487,814,144 可用字節
請輸入DOS命令或E-退出鍵:ver

Microsoft Windows [版本 10.0.16299.611]

請輸入DOS命令或E-退出鍵:time

當前時間: 21:52:41.66
輸入新時間:

請輸入DOS命令或E-退出鍵:pwd

請輸入DOS命令或E-退出鍵:‘pwd’ ???е???
???

請輸入DOS命令或E-退出鍵:ping www.baidu.com

正在 Ping www.a.shifen.com [119.75.216.20] 具有 32 字節的數據:
來自 119.75.216.20 的回復: 字節=32 時間=11ms TTL=56
來自 119.75.216.20 的回復: 字節=32 時間=11ms TTL=56
來自 119.75.216.20 的回復: 字節=32 時間=8ms TTL=56
來自 119.75.216.20 的回復: 字節=32 時間=6ms TTL=56

119.75.216.20 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 6ms,最長 = 11ms,平均 = 9ms

請輸入DOS命令或E-退出鍵:ping 17.2.2.193

正在 Ping 17.2.2.193 具有 32 字節的數據:
請求超時。
請求超時。
請求超時。
請求超時。

17.2.2.193 的 Ping 統計信息:
數據包: 已發送 = 4,已接收 = 0,丟失 = 4 (100% 丟失),

請輸入DOS命令或E-退出鍵:e
‘e’ ???е???
???

請輸入DOS命令或E-退出鍵:E
退出程序!

Process finished with exit code 0

20、文件訪問
訪問一存在多行的文件,實現每隔一秒逐行顯示文本內容的程序,每次顯示文本文件的 5行, 暫停並向用戶提示“輸入任意字符繼續”,按回車鍵後繼續執行,直到文件末尾。
顯示文件的格式為:
[當前時間] 一行內容,比如:[2016-07-08 22:21:51] 999370this is test

import codecs
import time

with codecs.open(“c:\code\abc.txt”, “r”, encoding=“utf-8-sig”) as f:
lines = f.readlines()

start_line = 0
for i in range(len(lines)):
if i % 5 == 0 and i != 0:
data = lines[start_line:i]
start_line = i
for j in data:
print(j.strip())
command = input(“請輸入任意字符繼續,不輸入則需等10s:”)
print(“程序等待開始時間 : %s” % time.ctime())
if command == “”:
time.sleep(10)
print(“程序等待結束時間 : %s” % time.ctime())

elif i == len(lines)-1:
data2 = lines[start_line:i]
for k in data2:
print(k.strip())
print("文件讀取完畢!")
1
2
3
4
5
執行結果:

C:\Users\admin\PycharmProjects\untitled1\venv\Scripts\python.exe C:/Users/admin/PycharmProjects/untitled1/test.py
0 one two three four five!
1 one two three four five!
2 one two three four five!
3 one two three four five!
4 one two three four five!
請輸入任意字符繼續,不輸入則需等10s:
程序等待開始時間 : Tue Sep 18 22:32:34 2018
程序等待結束時間 : Tue Sep 18 22:32:44 2018
5 one two three four five!
6 one two three four five!
7 one two three four five!
8 one two three four five!
9 one two three four five!
請輸入任意字符繼續,不輸入則需等10s:6
程序等待開始時間 : Tue Sep 18 22:32:48 2018
程序等待結束時間 : Tue Sep 18 22:32:48 2018
10 one two three four five!
11 one two three four five!
12 one two three four five!
13 one two three four five!
14 one two three four five!
請輸入任意字符繼續,不輸入則需等10s:6
程序等待開始時間 : Tue Sep 18 22:32:51 2018
程序等待結束時間 : Tue Sep 18 22:32:51 2018
15 one two three four five!
16 one two three four five!
17 one two three four five!
18 one two three four five!
19 one two three four five!
請輸入任意字符繼續,不輸入則需等10s:
程序等待開始時間 : Tue Sep 18 22:32:53 2018
程序等待結束時間 : Tue Sep 18 22:33:03 2018
20 one two three four five!
21 one two three four five!
22 one two three four five!
23 one two three four five!
24 one two three four five!
請輸入任意字符繼續,不輸入則需等10s:o
程序等待開始時間 : Tue Sep 18 22:33:06 2018
程序等待結束時間 : Tue Sep 18 22:33:06 2018
25 one two three four five!
26 one two three four five!
27 one two three four five!
28 one two three four five!
29 one two three four five!
請輸入任意字符繼續,不輸入則需等10s:k
程序等待開始時間 : Tue Sep 18 22:33:09 2018
程序等待結束時間 : Tue Sep 18 22:33:09 2018
30 one two three four five!
31 one two three four five!
32 one two three four five!
33 one two three four five!
34 one two three four five!
請輸入任意字符繼續,不輸入則需等10s:
程序等待開始時間 : Tue Sep 18 22:33:11 2018
程序等待結束時間 : Tue Sep 18 22:33:21 2018
35 one two three four five!
36 one two three four five!
37 one two three four five!
38 one two three four five!
39 one two three four five!
請輸入任意字符繼續,不輸入則需等10s:
程序等待開始時間 : Tue Sep 18 22:33:25 2018
程序等待結束時間 : Tue Sep 18 22:33:35 2018
40 one two three four five!
41 one two three four five!
42 one two three four five!
文件讀取完畢!

Process finished with exit code 0

文件學習