我正在尝试使用python3套接字构建文件传输系统。我有连接和发送,但我现在的问题是发送的文件必须与程序在同一目录中,当你收到文件时,它只是将文件放入与程序相同的目录中。如何让用户输入要发送的文件的位置并选择要发送到的文件的位置?
答案 0 :(得分:0)
我假设你打开文件:
open("filename","r")
如果不提供绝对路径,则open函数将始终默认为相对路径。所以,如果我想打开/mnt/storage/dnd/5th_edition.txt这样的文件,我会使用来使用:
open("/mnt/storage/dnd/4p5_edition","r")
如果我想将此文件复制到/ mnt / storage / trash /我会 使用绝对路径:
open("/mnt/storage/trash/4p5_edition","w")
如果相反,我决定使用它:
open("mnt/storage/trash/4p5_edition","w")
如果在我当前的文件夹中没有名为mnt的目录,其目录为storage / trash,那么我会得到一个IOError。如果那些文件夹 存在于我当前的文件夹中,那么它最终会在/ whatever / / path / is / to / my / current / directory / mnt / storage / trash / 4p5_edition中,而不是的/ mnt /存储/垃圾/ 4p5_edition。
答案 1 :(得分:0)
因为您说该文件将放在程序所在的同一路径中,所以以下代码可能会起作用
import os
filename = "name.txt"
f = open(os.path.join(os.path.dirname(__file__),filename))
答案 2 :(得分:0)
非常简单,只需从用户
获取路径即可subpath = raw_input("File path = ")
print subpath
file=open(subpath+str(file_name),'w+')
file.write(content)
file.close()
我想如果你需要别的东西,那么你需要的就告诉我。
答案 3 :(得分:0)
就像您说的那样,该文件应位于项目的同一文件夹中,因此您必须替换该文件,或定义一个函数以将正确的文件路径返回到open()
函数中,这是您的一种方式可以用来减少寻找问题兄弟的解决方案的时间。
应该是这样的:
import os
filename = "the_full_path_of_the_fil/name.txt"
f = open(os.path.join(os.path.dirname(__file__),filename))
然后,您可以使用f
变量的值作为文件所在目录的路径。