Comment échapper à des barres obliques en python, de sorte que open() voit mon fichier sous un nom de fichier pour écrire, au lieu d'un chemin d'accès à la lecture?
Permettez-moi de commencer par dire que je suis pas exactement ce qui se passe avec mon code, je suis assez nouveau dans la programmation.
J'ai travaillé sur la création d'un projet pour mon python CS de classe qui vérifie de mon professeur site web sur une base quotidienne et détermine s'il a modifié les pages web sur son site depuis la dernière fois que le programme a fonctionné ou pas.
L'étape, je travaille en ce moment est comme suit:
def write_pages_files():
'''
Writes the various page files from the website's links
'''
links = get_site_links()
for page in links:
site_page = requests.get(root_url + page)
soup = BeautifulSoup(site_page.text)
with open(page + ".txt", mode='wt', encoding='utf-8') as out_file:
out_file.write(str(soup))
Les liens ressembler à ceci:
/site/nomsite/classe/final-code
Et l'erreur que j'obtiens est comme suit:
with open(page + ".txt", mode='wt', encoding='utf-8') as out_file:
FileNotFoundError: [Errno 2] No such file or directory: '/site/sitename/class.txt'
Comment puis-je écrire les pages du site avec ces types de noms (/site/sitename/nameofpage.txt)?
vous ne pouvez pas avoir
Merci! C'est totalement répond à ma question. Pouvez-vous me dire quel est le but de l'exclusion des barres obliques? Est-il un but?
C'est ce que je pensais. Merci pour toute l'aide!
Pas de soucis. Vous êtes weclome
/
dans le fichier basename, vous pouvez remplacer /
avec .
Merci! C'est totalement répond à ma question. Pouvez-vous me dire quel est le but de l'exclusion des barres obliques? Est-il un but?
/
est utilisé pour les répertoires de /site
etc.. est traité comme un répertoire qui provoque l'erreur que vous voyez comme /site/sitename/
n'est pas un répertoireC'est ce que je pensais. Merci pour toute l'aide!
Pas de soucis. Vous êtes weclome
OriginalL'auteur cody.codes | 2015-03-12
Vous devez vous connecter pour publier un commentaire.
vous ne pouvez pas avoir
/
dans le fichier basename sur unix ou windows, vous pouvez le remplacer/
avec.
:Python suppose
/site
etc.. est un répertoire.Vous pouvez utiliser
_
au lieu si vous avez des principaux/
OriginalL'auteur Padraic Cunningham
Sur Unix/Mac OS, pour le milieu des barres obliques, vous pouvez utiliser
:
qui vous permet de convertir de/
vu, le déclenchement de sous-dossiers que/
.site/sitename/class/final-code
->final-code
fichier dans unclass
dossier dans unsitename
dossier dans unsite
dossier dans le dossier en courssite:sitename:class:final-code
->site/sitename/class/final-code
fichier dans le dossier en cours.OriginalL'auteur Fleija
Liées à l'intitulé de la question, mais pas les détails, si vous vraiment voulez que vos noms de fichiers à inclure quelque chose qui ressemble à une barre, vous pouvez utiliser le caractère unicode "∕" (LA BARRE OBLIQUE DE DIVISION), aka
u'\u2215'
.Ce n'est pas utile dans la plupart des cas (et pourrait être source de confusion), mais peut être utile lors de la nomenclature standard pour un concept que vous souhaitez inclure dans un nom de fichier contient des barres obliques.
OriginalL'auteur RecursivelyIronic