首页 > 解决方案 > Python代码问题-尝试创建一个脚本来定位文件,对其进行编辑并将其另存为新文件

问题描述

我正在尝试创建一个脚本来定位我的文本文件。一旦找到我的文本文件,它将解析文件中的数据,然后将该文件另存为新文件。

更具体地说,我有一个包含用户信息列表的文件,我希望我的脚本找到用户名,提取它,并将其保存为仅包含用户名的新文件。

infile = r"C:/Highrisk/userinfo.txt"
outfile = r"C:/Highrisk/parsed.txt"
lines = []

with open(infile, 'r') as f:
    for line in f:
        usernamestart = line.find('\\')
        usernameend = line.find(':')
        username = line[usernamestart+1:usernameend]


with open(outfile, 'w') as f:
    for i in range(len(lines)):
        f.write(lines[i])

当我执行此代码时,它只会删除我原始文件中的所有文本。

标签: pythonparsing

解决方案


使用 open 时,“w”用于写入,“r”用于读取。由于它无法读取文件,因此它只是遍历任何内容并将其解析为空文件。您需要这样授予它读取权限:

infile = r"C:\test\userinfo.txt"
outfile = r"C:test\parsed.txt"
lines = []

with open(infile, 'r') as f:
    for line in f:
        usernamestart = line.find('\\')
        usernameend = line.find(':')
        username = line[usernamestart+1:usernameend]


with open(outfile, 'w') as f:
    for i in range(len(lines)):
        f.write(lines[i])

此外,您可能会遇到的另一个错误是您使用以下行

usernamestart = line.find('\')

'\' 字符是需要转义的特殊字符,如下所示:

usernamestart = line.find('\\')

此外,您需要将信息存储在列表的第一个循环中,以便在写入另一个文件时使用它。


推荐阅读