Python如何在字符串前面添加字符

引言

在日常的编程工作中,我们经常会遇到需要在字符串前面添加字符的情况。无论是在处理文本文件、字符串拼接、数据处理等方面,都可能会用到这一功能。本文将介绍如何在Python中实现在字符串前面添加字符的方法,并提供一个实际的问题和解决方案作为示例。

方法一:使用字符串连接操作符 "+"

最简单的方法是使用字符串连接操作符 "+"。通过将要添加的字符与原字符串相连接,即可实现在字符串前面添加字符的效果。以下是示例代码:

def add_prefix(string, prefix):
    return prefix + string

# 使用示例
original_string = "world"
prefix = "Hello, "
result = add_prefix(original_string, prefix)
print(result)  # 输出:"Hello, world"

上述代码中,我们定义了一个函数 add_prefix,它接受两个参数:待添加前缀的字符串 string 和要添加的前缀 prefix。函数内部使用字符串连接操作符将前缀与字符串相连接,然后返回结果。

方法二:使用字符串格式化操作符 "%"

另一种常见的方法是使用字符串格式化操作符 "%"。我们可以使用 "%s" 占位符来表示字符串,并通过将原字符串作为参数传递给格式化操作符,将前缀添加到字符串的前面。以下是示例代码:

def add_prefix(string, prefix):
    return "%s%s" % (prefix, string)

# 使用示例
original_string = "world"
prefix = "Hello, "
result = add_prefix(original_string, prefix)
print(result)  # 输出:"Hello, world"

上述代码中,我们同样定义了一个函数 add_prefix,它接受两个参数:待添加前缀的字符串 string 和要添加的前缀 prefix。函数内部使用字符串格式化操作符将前缀和字符串进行格式化,然后返回结果。

实际问题:批量修改文件名

假设我们有一个文件夹,其中包含了很多文件,这些文件的命名规则是以数字开头,后面跟着文件名。现在我们需要将这些文件名统一修改为以日期开头,日期格式为 "YYYY-MM-DD"。例如,原文件名为 "123_file.txt",需要修改为 "2022-10-31_file.txt"。这个问题可以通过在字符串前添加字符的方法解决。

首先,我们需要获取文件夹中的所有文件名,并遍历每个文件名。然后,我们可以使用字符串切片操作,将原文件名中的数字部分提取出来,并根据日期格式生成新的文件名。最后,我们将新的文件名与原文件名进行替换。以下是示例代码:

import os

def rename_files(folder_path):
    file_list = os.listdir(folder_path)
    for filename in file_list:
        if filename.startswith("."):  # 忽略隐藏文件
            continue
        if not filename[0].isdigit():  # 忽略非数字开头的文件名
            continue

        prefix = get_date_prefix()  # 获取日期前缀
        new_filename = add_prefix(filename, prefix)  # 添加前缀
        new_filepath = os.path.join(folder_path, new_filename)
        old_filepath = os.path.join(folder_path, filename)
        os.rename(old_filepath, new_filepath)  # 重命名文件

def get_date_prefix():
    import datetime
    current_date = datetime.date.today()
    return current_date.strftime("%Y-%m-%d")

# 使用示例
folder_path = "/path/to/folder"
rename_files(folder_path)

上述代码中,我们首先使用 os.listdir 函数获取文件夹中的所有文件名,并使用 for 循环遍历每个文件名。在遍历过程中,我们使用 startswith 方法判断文件名是否以 "." 开头,以及使用 isdigit 方法判断文件名的第一个字符是否为数字。如果文件名满足条件,则调用 get_date_prefix 函数获取日期前缀,并使用 add_prefix 函数将前缀添加到文件名的前面。然后,使用 os.rename 函数重命名文件。

关系图

erDiagram
    FILE ||--o DATE_PREFIX : has
    FILE ||--o FILENAME : has
    DATE_PREFIX {
        date (PK)
    }
    FILENAME {
        name (PK)
    }