我正在尝试使用python在Ubuntu中创建目录并将zip文件保存在其中。我的代码在Windows中运行良好,但是在ubuntu上却表现异常。
import os
import zipfile
import datetime
from os.path import expanduser
home = expanduser('~')
zip_folder = home + '\\Documents\\ziprep' # enter folder path where files are
zip_path = home + '\\Documents\\zips' #enter path for zip to be saved
global fantasy_zip
def dailyfiles(weekly_file,today):
today = str(today)
try:
os.mkdir(zip_path + today)
except OSError:
print("Creation of the directory %s failed" % today)
else:
print("Successfully created the directory %s " % today)
for folder, subfolders, files in os.walk(zip_folder):
for file in files:
if file.startswith(today) and not file.endswith('.zip') and file not in weekly_file:
print("Zipping - Filename " + file)
zip_in = zip_path + today + "\\"
fantasy_zip = zipfile.ZipFile(zip_in + file + '.zip', 'w')
fantasy_zip.write(os.path.join(folder, file),
os.path.relpath(os.path.join(folder, file), zip_folder),
compress_type=zipfile.ZIP_DEFLATED)
fantasy_zip.close()
def main():
weekday = str(datetime.datetime.today().weekday())
today = datetime.date.today().strftime('%Y%m%d')
dailyfiles(weekly_file,today)
if __name__ == '__main__':
main()
从逻辑上讲,它应该在指定的路径上创建一个具有今天日期的文件夹。但是它是在ubuntu中创建文件夹,并且整个路径都在m脚本所在的目录中。
例如,它正在创建名称如下的文件夹:'/ home / downloads / scripypath'
在脚本中指定的路径上我需要输入“ 20191106”。该代码在Windows中工作正常。
链接到当前的project file
答案 0 :(得分:1)
我建议分别在第8行和第9行使用home + '/Documents/ziprep/'
和home + '/Documents/zips/'
。
编辑:对不起,忘了为什么这应该解决问题。在Linux或Unix中,目录使用“ /”代替“ \”(在Windows中使用)作为目录分隔符。
答案 1 :(得分:1)
ubuntu目录中的完全不同,它们使用\代替/。 因此,请准备您的链接作为ubuntu文件结构。