我对Python有点新,我试图简化我现有的代码。 现在,我用不同的字符串重复5次代码。我想让代码有一次,并让它通过一个字符串列表。如何遍历Python中的字符串列表
目前我有:
def wiScanFormat():
File = open("/home/pi/gpsMaster/WiScan.txt", "r")
data = File.read()
File.close()
MAC = data.replace("Address:", "\nAddress, ")
File = open("/home/pi/gpsMaster/WiScan.txt", "w")
File.write(MAC)
File.close()
File = open("/home/pi/gpsMaster/WiScan.txt", "r")
data = File.read()
File.close()
SSID = data.replace("ESSID:", "\nESSID, ")
File = open("/home/pi/gpsMaster/WiScan.txt", "w")
File.write(SSID)
File.close()
File = open("/home/pi/gpsMaster/WiScan.txt", "r")
data = File.read()
File.close()
FREQ = data.replace("Frequency:", "\nFrequency, ")
File = open("/home/pi/gpsMaster/WiScan.txt", "w")
File.write(FREQ)
File.close()
File = open("/home/pi/gpsMaster/WiScan.txt", "r")
data = File.read()
File.close()
QUAL = data.replace("Quality", "\nQuality, ")
File = open("/home/pi/gpsMaster/WiScan.txt", "w")
File.write(QUAL)
File.close()
File = open("/home/pi/gpsMaster/WiScan.txt", "r")
data = File.read()
File.close()
SIG = data.replace("Signal level", "\nSignal Level, ")
File = open("/home/pi/gpsMaster/WiScan.txt", "w")
File.write(SIG)
File.close()
我想什么有:
ORG = ['Address:', 'ESSID:'...etc]
NEW = ['\nAddress, ' , '\nESSID, ' , ... etc]
和运行,通过:
File = open("/home/pi/gpsMaster/WiScan.txt", "r")
data = File.read()
File.close()
ID = data.replace("ORG", "NEW")
File = open("/home/pi/gpsMaster/WiScan.txt", "w")
File.write(ID)
File.close()
我试着运行什么我忍了,但它似乎没有按照我需要的方式进行格式化。
从上面的输出是这样的:
Cell 46 - Address: xx:xx:xx:xx:xx:xx ESSID:"MySSID" Frequency:2.412 GHz (Channel 1) Quality=47/100 Signal level=48/100 Quality=47/100 Signal level=48/100
但它应该是这个样子(当我运行中的字符串相同的块分开它):
xx:xx:xx:xx:xx:xx MySSID 5.18 GHz (Channel 36) 0.81 0.99
如何我应该通过我的字符串列表来循环这段代码吗? 有两个字符串,我需要找到和替换,新老,所以他们将不得不一起工作。这些列表显然是相同的,我需要它们按正确的顺序排列。具有地址的地址,具有ESSID的ESSID等。
在此先感谢!
你真正打开同一文件五次就可以执行不同的编辑序列,或者我误解了? – khelwood
@khelwood是的,目前我在。我知道这不是最有效的方式去这个,这就是为什么我正在探索其他选项 编辑:实际上,它正在开放10倍。 5表示读取,5表示写入 – sjo91190
1.如果我没有记错,'replace'只替换第一个匹配项。改用[re.sub](https://docs.python.org/2/library/re.html#re.sub)。 2。使用'with open(“..”)作为f:#做某事而不是'f = open(“..”)''和'f.close'。 3.发布格式化的示例数据! – knh170