python将txt文件中的字符和数字单独提取

2023-12-19 15:04:14
推荐回答(5个)
回答1:

1、打开pycharm编辑器。

2、在文件中写上这个程序的注释。

3、新建一个变量test8。test8="my name is luo"。

4、利用replace函数将字符串中的my换成you,test8.replace('my','you')。

5、将结果打印出来。

6、在窗口中选择"run"->"run"。

7、运行这个程序,这时候语句就变成了you name is luo。

回答2:

import re

def getDigiStr(file_path):
    fp = open(file_path, 'r')
    file_text = fp.read()
    digi_str = re.findall(r'([0-9]+)',file_text,re.MULTILINE)
    fp.close()
    #数字
    return ''.join(digi_str)


def getLetterStr(file_path):
    fp = open(file_path, 'r')
    file_text = fp.read()
    letter_str = re.findall(r'([a-zA-Z]+)',file_text,re.MULTILINE)
    fp.close()
    #字母
    return ''.join(letter_str)

if __name__ == '__main__':
    print(getDigiStr(r'test.txt'))
    print(getLetterStr(r'test.txt'))

最快的方式使用正则表达式:

http://www.jb51.net/tools/zhengze.html


这个教程不错,推荐

回答3:

filename = '/var/..../a.txt'
f = open(filename)
whlie True:
if data:
data = f.readlines()
data_list = data.split(' ')
num_sum = 0
for i in data_list[1:]:
num_sum += i

for j in data_list[0].split(‘,’):
print j,
print num_sum / (len(data_list) - 1)
else:

break

f.close()

代码没有测试,仅供参考!
原理:
1、将文件按行读取出来;
2、对每行按照空格进行切分,得到一个列表;
3、取列表从第二个到最后一个元素进行求和;
4、将列表第一个元素按照逗号切分,得到一个列表;
5、依次输出人名和平均数

回答4:

import re
f_In_Name = 'test.txt'
f_I = open(f_In_Name)
f_Out_Name = 'output.txt'
f_O = open(f_Out_Name, 'w')
f_I_Lines = f_I.read().split('\n')
f_I_Lines.pop()
for line in f_I_Lines:
s = re.findall(r'[a-zA-Z]+', line)
for Name in s:
f_O.write(Name + ' ')
n = re.findall(r'[0-9]+', line)
Sum = 0
for i in n:
Sum += int(i)
ave = round(Sum / float(len(n)), 2)
f_O.write(str(ave) + '\n')
f_I.close()
f_O.close()

回答5:

ls="""Bird, Big 78 42 76 75 80
Bear, Jasper 81 80 81 81 83 82
Bunny, Bugs 34 56 67 58 72""".split("\n")
for l in ls:
    ws=l.split()
    name=ws[1]+' '+ws[0]
    fs=ws[2:]
    print name,fs