用continue编写一脚本,遍历当前目录下的所有文件,如果文件名包含大写字母,则转换成小写,并输出转换前的文件名和转换后的文件名,如果文件名不包含大写字母,则直接跳过
时间: 2024-05-12 13:21:06 浏览: 10
```python
import os
for filename in os.listdir('.'):
if not os.path.isfile(filename):
continue
if not any(c.isupper() for c in filename):
continue
new_filename = filename.lower()
os.rename(filename, new_filename)
print(f'{filename} -> {new_filename}')
```
说明:
1. `os.listdir('.')` 返回当前目录下的所有文件和文件夹的名称,包括隐藏文件和文件夹。
2. `os.path.isfile(filename)` 判断指定路径是否为文件。
3. `any(c.isupper() for c in filename)` 判断字符串中是否包含大写字母,如果包含则返回 True。
4. `filename.lower()` 将字符串中的所有大写字母转换成小写字母。
5. `os.rename(src, dst)` 将指定路径的文件或文件夹重命名为新的路径。
6. `f'{filename} -> {new_filename}'` 是 f-string 的写法,用于将变量的值插入到字符串中。
相关问题
对于一个以#结束的字符串,将其小写字母全部转换成单字母 把大写字母全部转换成小写字母 其他字符不变输出
以下是 Python 代码实现:
```python
s = input() # 输入字符串
new_s = "" # 初始化新字符串
for c in s:
if c == "#":
continue # 如果是 #,跳过本次循环
elif c.islower(): # 如果是小写字母
new_s += c.upper() + " " # 转换成大写字母并添加到新字符串中
elif c.isupper(): # 如果是大写字母
new_s += c.lower() + " " # 转换成小写字母并添加到新字符串中
else:
new_s += c # 其他字符不变
print(new_s.strip()) # 输出新字符串,去掉首尾空格
```
例如,输入字符串为 "Hello, World!#",则输出结果为 "h E L L O , w o r l d !"。
使用C语言编写一段遍历Linux某一个目录下所有文件的代码
以下是使用C语言编写遍历Linux某一个目录下所有文件的代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/stat.h>
#include <string.h>
void traverse(char *dir) {
DIR *dp;
struct dirent *entry;
struct stat statbuf;
if ((dp = opendir(dir)) == NULL) {
fprintf(stderr, "Cannot open directory: %s\n", dir);
return;
}
chdir(dir);
while ((entry = readdir(dp)) != NULL) {
lstat(entry->d_name, &statbuf);
if (S_ISDIR(statbuf.st_mode)) {
if (strcmp(".", entry->d_name) == 0 || strcmp("..", entry->d_name) == 0) {
continue;
}
printf("Directory: %s/\n", entry->d_name);
traverse(entry->d_name);
} else {
printf("File: %s\n", entry->d_name);
}
}
chdir("..");
closedir(dp);
}
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s directory_name\n", argv[0]);
exit(1);
}
traverse(argv[1]);
return 0;
}
```
这段代码可以遍历指定目录下的所有文件和子目录,并输出它们的名称。