.split()问题

时间:2018-11-28 08:05:46

标签: python python-3.x

我试图设置一个脚本以分离出文本文件中的所有链接,但是文本不会拆分成单个单词,我不确定为什么。通常,我对这些东西没事,但是这次我要处理编码。

示例文字: 乔希:苹果汁是NGL最好的汁 Seratha:WarLord,说谎者,说谎者和欺骗者! 齐罗 https://www.blank

输出: b'import os \ ndef main():\ n表示os.listdir()中的文件名:\ n try:\ n F =打开(文件名,\'r + \',编码=“ utf8”)。read()\ n F.split()\ n,如果\'http \'在F:\ n print(F.encode(“ utf8”))\ n除UnicodeDecodeError:\ n print(“ UnicodeDecodeError”)\ nmain()\ n' b'\ xef \ xbb \ xbfJosh:苹果汁是最好的汁液NGL \ nSeratha:WarLord,骗子,骗子和欺骗者!\ n \ xf0 \ x9f \ x8e \ x80Ziiro \ nhttps://www.blank'

预期输出: “ b'\ xef \ xbb \ xbfJosh:”,“ Apple”,“ juice”,“ is”,“ the”,“ best”,“ juice”等。

import os
def main():
    for filename in os.listdir():
        try:
            F = open(filename, 'r+', encoding="utf8").read()
            F.split()
            if 'http' in F:
                print(F.encode("utf8"))
        except UnicodeDecodeError:
            print("UnicodeDecodeError")
main()

由于这里提供的帮助,它已得到修复,固定代码如下所示:

import os
os.chdir('data')
for filename in os.listdir():
    F = open(filename, 'r+', encoding="utf8").read()
    for token in F.split():
        if 'http' in token:
            print(token.encode("utf8"))

2 个答案:

答案 0 :(得分:1)

尝试更换

@PutListOfConcreteModulesHere

使用

generateDaggerClasses

答案 1 :(得分:1)

split不会修改F变量。它返回一个字符串列表。您必须执行以下操作:

for filename in os.listdir('.'):
    try:
        F = open(filename, 'r+').read()
        print("Searching in " + filename)
        for token in F.split():
            if 'http' in token:
                print(token)
    except:
        print("Failed to open " + filename)