python 删除TXT文档中小写字母

python 删除txt文档中小写字母
如:“1.txt” 文档中有如下字段 :
QDUEYDJJFVNEJFJjdhdjssksKOISKSLAfsse
JDHFJELCBJHSscdoijrhgbJDUHEFBdjvhgtsf
hsjdHDFOGDESJDdjfhfjhdjkjDJGOZBDHDGSj
jfhdHDGSHFJIVKDJDH
将其小写字母全部删除,并输出结果。
我尝试参考网上代码,改了一点,并没有成功,

#!/usr/bin/env python
# -*- coding: utf-8 -*-

f=open('1.txt','r')
f_read=f.readlines()
f_len=len(f_read)
f.close()

read_list=[]

f=open('1.txt','r')
    read_list=f.readline()
    for j in range(0,len(read_list[])):
        my_char=str(read_list[])
        temp = re.sub('[a-z]','',text)
    f_result=open('1A.txt','a')
    f_result.write(text)
    f_result.close()
    print(i)

f.close()

请指教!

该回答引用于gpt与OKX安生共同编写:
  • 该回答引用于gpt与OKX安生共同编写:

您可以使用Python的字符串方法isupper()和islower()来检查字符是否为大写或小写。可以使用文件输入输出操作来读取文件并将处理后的结果写入到新的文件中。下面是一种可能的实现方式:

with open('1.txt', 'r') as f_in, open('1A.txt', 'w') as f_out:
    for line in f_in:
        new_line = ''
        for char in line:
            if char.isupper() or char.isspace():
                new_line += char
        f_out.write(new_line)

以上代码会遍历1.txt文件中的每一行,然后遍历该行的每个字符,如果该字符是大写字母或空格,则将其添加到新的字符串中。最终,新的字符串将被写入到1A.txt文件中。

需要注意的是,在Python 3.x中,open()函数默认以文本模式打开文件,因此不需要指定文件的编码方式。如果使用的是Python 2.x,请将文件模式设置为'rb''wb',并在读取和写入操作时进行相应的解码和编码。

  • 以下是另一种使用正则表达式的实现方式:
import re

with open('1.txt', 'r') as f_in, open('1A.txt', 'w') as f_out:
    for line in f_in:
        new_line = re.sub('[a-z]', '', line)
        f_out.write(new_line)

以上代码使用Python的re模块中的sub()函数来删除字符串中的小写字母。'[a-z]'表示匹配小写字母,''表示用空字符串替换这些小写字母。

参考GPT和自己的思路:你尝试的代码中有一些语法错误和逻辑错误。下面是一个可以实现删除txt文档中小写字母的Python代码示例:

import re

# 打开原始文档和目标文档
with open('1.txt', 'r') as f1, open('1A.txt', 'w') as f2:
    # 逐行读取原始文档
    for line in f1:
        # 使用正则表达式替换小写字母为空字符
        new_line = re.sub(r'[a-z]', '', line)
        # 将处理后的行写入目标文档
        f2.write(new_line)

# 打印处理完成
print('Done!')

解释一下这个代码实现的步骤:

  1. 首先使用with语句打开原始文档和目标文档,同时指定打开方式为'r'(读取)和'w'(写入)。
  2. 接着使用for循环逐行读取原始文档,并对每一行执行下面的步骤:
  3. 使用re.sub方法和正则表达式'[a-z]'匹配小写字母,并将其替换为空字符。
  4. 将处理后的行写入目标文档。
  5. 处理完所有行后,关闭原始文档和目标文档。
  6. 打印处理完成的提示信息。

希望能帮到你!

问题分析:
要删除txt文档中的小写字母,可以使用Python的文件读写操作和字符串操作。
具体步骤如下:
1. 打开txt文档,读取其中的内容。
2. 遍历文档中的每个字符,判断是否为小写字母。
3. 如果是小写字母,则将其删除。
4. 将修改后的内容重新写入txt文档中。
代码实现:
下面是一个简单的Python代码示例,可以实现删除txt文档中的小写字母:
python
# 打开txt文档,读取其中的内容
with open('1.txt', 'r') as f:
content = f.read()
# 遍历文档中的每个字符,判断是否为小写字母
new_content = ''
for c in content:
if not c.islower():
new_content += c
# 将修改后的内容重新写入txt文档中
with open('1.txt', 'w') as f:
f.write(new_content)

代码解释:
首先使用`with open()`语句打开txt文档,并使用`read()`方法读取其中的内容,将其存储在变量`content`中。
然后使用`for`循环遍历文档中的每个字符,使用`islower()`方法判断是否为小写字母。如果不是小写字母,则将其添加到新的字符串`new_content`中。
最后使用`with open()`语句再次打开txt文档,并使用`write()`方法将修改后的内容写入其中。
总结:
通过以上代码实现,可以删除txt文档中的小写字母。需要注意的是,该代码只能删除英文小写字母,对于其他语言的小写字母可能无法处理。同时,该代码也无法处理txt文档中的格式、排版等问题。

参考GPT:您可以尝试使用以下代码:

import re

with open('1.txt', 'r') as f:
    data = f.read()

data = re.sub('[a-z]', '', data)

with open('1A.txt', 'w') as f:
    f.write(data)

这个代码首先使用with语句打开1.txt文件并读取所有内容。然后,使用正则表达式'[a-z]'匹配小写字母,并使用re.sub()函数将其替换为空字符串。最后,将结果写入1A.txt文件中。

请注意,这个代码使用with语句打开文件,因此无需手动关闭文件。

该回答引用ChatGPT
您的代码中存在多处语法错误和逻辑问题。以下是一个可以实现您要求的示例代码:

import re
with open('1.txt', 'r') as f:
    lines = f.readlines()
new_lines = []
for line in lines:
    new_line = re.sub('[a-z]', '', line)
    new_lines.append(new_line)
with open('1A.txt', 'w') as f:
    f.writelines(new_lines)


来解释一下:

首先使用 with open() 语句打开原始文本文件,并按行读取文本内容。

使用 re.sub() 函数将每行文本中的小写字母替换为空字符串,并将替换后的新行添加到一个新的列表 new_lines 中。

最后使用 with open() 语句将新的列表中的内容写入到目标文件中。
请注意,上述代码只能删除小写字母,如果原始文本文件中存在其他的小写字符(如数字、标点符号等),这些字符不会被删除。如果您需要删除所有小写字符,可以将正则表达式改为 '[a-z]',即不区分字符类型。