请教一个 Python 读取文件内容后操作 MySQL 的问题.

2017-05-05 14:13:09 +08:00
 kenshin912

内部有个管理服务器信息 , FTP 信息的页面 , 因为老板要求每半个月更新一次密码 , 所以自己写了 shell 脚本定期换 vsFTPD 的密码.

但是页面上的密码也要更新 , 我想通过 Python 解决这个问题(不想挨个改哇) . - -!

先上代码

import pymysql

# 刷新 vsFTPD 密码
db_connect = pymysql.connect(host='192.168.0.xxx', port=3306, user='root', passwd='123456', db='mima',charset="utf8")
request = db_connect.cursor()

def process(username,password):
	if username:
		request.execute("SELECT * FROM `ftp_list` WHERE username='%s'" % (username))
		result = request.fetchall()
		if result:
			request.execute("UPDATE `ftp_list` SET password='%s' WHERE username='%s'" % (password,username))
			print ("用户"+username+"的密码已经更新!")
		else:
			print ("没找到"+username+"这个用户!")
	else:
		print ("缺少参数!")


# u = "sara"
# p = "123456"

# process(u,p)

f = open('1.txt','r').readlines()

while f:
	lines = f[:2]
	f = f[2:]
	user=str(lines[0])
	pwd=str(lines[1])
	process(user,pwd)

那个 1.txt 的格式是:

sara
123456
lily
123456

第一行是用户名, 第二行是密码.

问题是 , 按照目前的代码 , 运行的结果总是提示找不到 xxx 这个用户.

然而我注释掉从文件中读取帐号密码的这一段 , 直接赋值并用 process() 来处理则正常.

比较小白 , Google 了半天也没什么头绪 , 跑来请教各位大佬了... 感谢.

1743 次点击
所在节点    Python
4 条回复
XYxe
2017-05-05 14:49:14 +08:00
uns = f[::2]
pwds = f[1::2]
for index in range(len(uns)):
process(uns[index].strip(), pwds[index].strip())
kenshin912
2017-05-05 14:58:54 +08:00
@XYxe
感谢大佬赐教 , 完美解决.
能请教一下我的问题在哪吗?
XYxe
2017-05-05 15:00:26 +08:00
@kenshin912 应该是没有去掉行尾的换行
kenshin912
2017-05-05 15:10:29 +08:00
@XYxe
难怪之前我在调试的时候看到有换行符,但是一直没想到是这个问题.
感谢 , 明白了.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359333

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX