Python遍历目录文件,将无后缀文件名作为变量存储文件内容
嘿,这个需求我之前也帮人处理过,分两种常用场景给你方案,看你用哪种语言来实现~
Python 实现方案
如果你用Python的话,推荐用os模块来遍历文件,这里有两种方式:直接创建全局变量,或者用字典存储(更安全,避免变量名冲突)。
import os # 遍历当前目录下所有.txt文件 for filename in os.listdir('.'): if filename.endswith('.txt'): # 提取不带扩展名的文件名作为变量名 var_name = os.path.splitext(filename)[0] # 读取文件内容(指定编码避免乱码,根据你的文件编码调整) with open(filename, 'r', encoding='utf-8') as f: file_content = f.read() # 方式1:直接创建全局变量,之后可以直接用dataset1、dataset2这类变量名 globals()[var_name] = file_content # 方式2:用字典统一管理(更推荐,防止覆盖已有变量) # file_contents = {} # file_contents[var_name] = file_content # 测试一下,比如打印dataset1的内容 print(dataset1)
小提示
- 如果你的文件名里包含空格或者特殊字符,
os.path.splitext也能正常处理,不用额外担心。 - 如果文件是GBK等其他编码,把
encoding='utf-8'改成对应的编码即可。 - 用字典存储的话,后续可以通过
file_contents['dataset1']来访问内容,更可控。
Bash 脚本实现方案
要是你在Linux/macOS终端下用Shell脚本处理,用循环加declare命令就能动态创建变量:
#!/bin/bash # 遍历当前目录下所有.txt文件 for file in *.txt; do # 去掉.txt后缀,得到变量名 var_name="${file%.txt}" # 读取文件内容到变量(如果文件有特殊字符,可改用cat "$file" | tr -d '\r'处理换行) content=$(cat "$file") # 动态创建变量 declare "$var_name"="$content" done # 测试输出dataset1的内容 echo "$dataset1"
小提示
- 记得给脚本加执行权限:
chmod +x your_script.sh,然后运行./your_script.sh。 - 如果文件名有空格,一定要用双引号把
$file包起来,避免脚本报错。
内容的提问来源于stack exchange,提问作者JakobJakobson13
相关产品推荐
相关产品推荐

