我有几个txt文件,我已经成功地转换成csv文件,我现在想清理他们都以同样的方式,但我的脚本是有问题的阅读文件名。
首先,我将感兴趣的文件夹中的所有txt文件转换为csv文件:
files_dir = r'/Desktop/raw_data'
files = os.listdir(files_dir)
for file in files:
if fnmatch.fnmatch(file, 'deseq2*'):
extension = os.path.splitext(file)[1]
if extension =='.txt':
filename = os.path.join(files_dir, file)
df = pd.read_csv(filename, sep='|')
new_filename = os.path.splitext(filename)[0] + '.csv'
df.to_csv(new_filename, index=False)
我想对所有创建并保存的csv文件应用以下“清理”。这是获取字符串(基因)列表,并仅从gene_name列中提取这些基因的数据。
cleaned = df[df['gene_name'].isin(genes)]
这就是我尝试对我文件夹中的所有文件执行此操作的原因:
path = r'/Desktop/raw_data'
all_files = glob.glob(os.path.join(path, "*.csv")) #make list of paths
for file in all_files:
# Getting the file name without extension
file_name = os.path.splitext(os.path.basename(file))[0]
df = pd.read_csv(file_name)
cleaned = df[df['gene_name'].isin(genes)]
df.to_csv(file_name)
我认为我已经确定问题发生在以下代码行:
df = pd.read_csv(file_name)
我得到以下错误:[错误2]没有这样的文件或目录:'example_file'
我想也许我需要在文件名中有.csv,所以我尝试了以下方法,但我也得到了一个错误。
df = pd.read_csv(file_name +'.csv')
[错误2]没有这样的文件或目录:'example_file.csv'
我很困惑,因为这是怎么回事,因为该文件肯定存在的文件夹中,我引用。任何帮助是赞赏。
将数据清理应用于从here获取的所有csv文件的代码。
1条答案
按热度按时间xqnpmsa81#
你得到的文件名没有路径或扩展名(词干),然后尝试使用该部分名称打开文件。但是你需要完整的文件名才能在磁盘上找到它,而不仅仅是词干。你可以
print(file, file_name)
来查看差异。由于您想替换现有文件,您可以完全删除该处理。此外,确保您编写的是清理过的表,而不是原始表。