Amgalang 发表于 2022-3-11 00:22:26

str首字母大写,其余转换小写求助

大家好,我有一个1.txt内容部分例子如下:
EL_E
ARBA
HQQS
BURI
UY_E
$UJI

我想吧1.txt中的每个词首字母大写,其余都小写转换,结果实例为:
El_e
Arba
Hqqs
Buri
Uy_e
$uji

可把我难住了,用了一下readlines(),然而不能用split()
用capitalize()没数据了居然,
用read()只能转换一行

希望您的帮助,谢谢。

wp231957 发表于 2022-3-11 06:46:54

readlines(),就读到列表了,不需要split
只要对列表操作就可以了

isdkz 发表于 2022-3-11 07:16:33

本帖最后由 isdkz 于 2022-3-11 07:48 编辑

result = []
with open('1.txt', 'r+', encoding = 'utf-8') as f:
    for line in f:
      result.append(line.capitalize())
    f.seek(0)
    f.writelines(result)

Amgalang 发表于 2022-3-11 07:31:37

isdkz 发表于 2022-3-11 07:16


您好,想请教一个问题:
我写的代码如下:

a = open(r'C:\Users\amgalang\Desktop\1.txt',encoding = 'utf-8')
b = a.readlines()
for line in b:
        f = line.capitalize()
print(f)


为什么结果只是一行内容呢,谢谢

wp231957 发表于 2022-3-11 07:39:42

Amgalang 发表于 2022-3-11 07:31
您好,想请教一个问题:
我写的代码如下:



缩进问题,你那个print只在循环外,所以你懂得

isdkz 发表于 2022-3-11 07:53:54

本帖最后由 isdkz 于 2022-3-11 07:57 编辑

Amgalang 发表于 2022-3-11 07:31
您好,想请教一个问题:
我写的代码如下:



真如楼上大佬所说,不是只转换了一行,而是你只打印了最后一个 f,

要么你把 print 放在 for 循环里面,要么就是把所有的结果拼起来赋值给 f

故对你的代码修改如下:

a = open(r'C:\Users\amgalang\Desktop\1.txt',encoding = 'utf-8')
b = a.readlines()
f = ''
for line in b:
      f += line.capitalize()
print(f)

Amgalang 发表于 2022-3-11 07:55:01

isdkz 发表于 2022-3-11 07:16


学会了,谢谢您,祝您拥有美好的一天

Amgalang 发表于 2022-3-11 07:55:48

wp231957 发表于 2022-3-11 07:39
缩进问题,你那个print只在循环外,所以你懂得

难怪,学会了,谢谢您,祝您拥有美好的一天
页: [1]
查看完整版本: str首字母大写,其余转换小写求助