我每个日期都创建一个文件夹,然后在该文件夹下创建一组文件。我为此使用了此功能:
path_stats= pathlib.Path('/home/dataset/Signal_Synchronization_Traces/' + str(date.today()) + '_Results/Statistical_Test_Results').mkdir(parents=True, exist_ok=True)
print(path_stats)
for i in range(10):
file = open(str(path_stats)+'/File'+ str(i) + '.txt','wb')
file.write('hello')
print('done')
file.close
但是,此函数导致错误:
file = open(str(path_stats)+'/File'+ str(i) + '.txt','wb')
FileNotFoundError: [Errno 2] No such file or directory: 'None/File0.txt'
None
答案 0 :(得分:3)
在尝试打开文件之前创建文件夹结构:
import os
for i in range(10):
filename = str(path_stats)+'/File'+ str(i) + '.txt'
# Create folder structure
os.makedirs(os.path.dirname(filename), exist_ok=True)
file = open(filename,'wb')
file.write('hello')
print('done')
file.close
请注意,当您以二进制模式打开文件时,将无法写入字符串“ hello”。
答案 1 :(得分:2)
path_stats
是None
,因此str(path_stats)+'/File'+ str(i) + '.txt'
的结果为'None / File0.txt',它不是目录。
原因是pathlib.mkdir
没有返回值。将您的代码更改为:
...
path_stats = pathlib.Path('/home/dataset/Signal_Synchronization_Traces/' + str(date.today()) + '_Results/Statistical_Test_Results')
path_stats.mkdir(parents=True, exist_ok=True)
print(path_stats)
...
答案 2 :(得分:2)
path_stats = pathlib.Path('/tmp/home/dataset/Signal_Synchronization_Traces/' + str(date.today()) + '_Results/Statistical_Test_Results')
path_stats.mkdir(parents=True, exist_ok=True)
path_stats不包含目录字符串
from datetime import date
import pathlib
path_stats = pathlib.Path('/tmp/home/dataset/Signal_Synchronization_Traces/' + str(date.today()) + '_Results/Statistical_Test_Results').mkdir(parents=True, exist_ok=True)
print(path_stats)
变量是:
None
您需要先存储变量并在其上运行方法mkdir
from datetime import date
import pathlib
path_stats = pathlib.Path('/tmp/home/dataset/Signal_Synchronization_Traces/' + str(date.today()) + '_Results/Statistical_Test_Results')
path_stats.mkdir(parents=True, exist_ok=True)
print(path_stats)
然后变量包含路径:
/tmp/home/dataset/Signal_Synchronization_Traces/2019-01-15_Results/Statistical_Test_Results
然后您将可以运行代码
for i in range(10):
file = open(str(path_stats) + '/File' + str(i) + '.txt', 'wb')
file.write(b'hello')
print(str(path_stats) + '/File' + str(i) + '.txt')
print('done')
file.close()
产生:
/tmp/home/dataset/Signal_Synchronization_Traces/2019-01-15_Results/Statistical_Test_Results/File0.txt
done
/tmp/home/dataset/Signal_Synchronization_Traces/2019-01-15_Results/Statistical_Test_Results/File1.txt
done
(...)
警告:如果使用二进制文件,则需要保存二进制数据。
file = open(str(path_stats) + '/File' + str(i) + '.txt', 'wb')
file.write(b'hello')
替代:
file = open(str(path_stats) + '/File' + str(i) + '.txt', 'w')
file.write('hello')