python同步文件
1. 用python把文件夾下的所有文件包括文件夾裡面的文件都拷貝到同一個目錄下
defchange(path,path1):
forfinos.listdir(path):
ifos.path.isfile(path+os.path.sep+f):
a,b=os.path.splitext(f)
ifb!='.py':
shutil.(path+os.sep+f,path1)
elifos.path.isdir(path+os.path.sep+f):
change(path+os.sep+f,path1)
if__name__=='__main__':
path='D:\workspace\python'
path1='D:\workspace\python\filepath'
change(path,path1)
你好,我把change稍微改了一下,看看行不
2. 如何解決python不能導入同目錄py文件
解決python不能導入同目錄py文件的方法:
先查看需要導入的py文件名是否含有空格以及中文字元,如果有就刪掉空格換成英文的字元
然後用「import 文件名」的方式導入py文件就可以了
更多Python知識,請關註:Python自學網!!
3. 如何使用python代碼,從當前文件夾一個文件里復制字元到另一個文件夾下的同名文件里,文件有多個!
importos
importre
reg=re.compile("指定內容正則表達式")
source="一個文件夾路徑"
target="另一個文件夾路徑"
forfilenameinos.listdir(source):
fullname=os.path.join(source,filename)
targetfile=os.path.join(target,filename)
ifos.path.isfile(fullname)andos.path.splitext(filename)[1].lower()==".txt":
text=reg.search(open(fullname).read()).group(0)
open(targetfile,'w').write(text)
4. python 怎麼將輸入目錄內的文件拷貝至另一個目錄的同名文件夾
這是最近寫的一個類似代碼,你拿去改改
import shutil
import os
import logging
import sys
logger = logging.getLogger(__name__)
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
def cp_or_mv2(src_file, des_dir, is_):
print(src_file, des_dir)
if os.path.isfile(src_file):
logger.info(f'from file {src_file}')
if is_:
shutil.2(src_file, des_dir)
logger.info(f' to {des_dir}')
else:
des_file = os.path.join(des_dir, src_file)
shutil.move(src_file, des_file)
logger.info(f'move to {des_file}')
else:
logger.info(f'from dir {src_file}')
des_dir_level1 = os.path.join(des_dir, src_file)
shutil.tree(src_file, des_dir_level1, dirs_exist_ok=True)
logger.info(f'to {des_dir_level1}')
if not is_:
shutil.rmtree(src_file)
logger.info(f'deleted {src_file}')
def process_files_in_txt(txt_file, src_dir, des_dir, is_=True):
os.chdir(src_dir)
with open(txt_file, 'r', encoding='utf8', errors='ignore') as f:
for line in f.readlines():
src_file = line.strip()
# logger.info(src_file)
if os.path.exists(src_file):
cp_or_mv2(src_file, des_dir, is_)
else:
logger.warning(f'{src_file} missing!')
if __name__ == '__main__':
process_files_in_txt(r"D:\D\需要拷貝.txt", # 哪些文件(夾)
r"D:\D\Desktop", # 從哪個文件夾
r"D:\D\新建文件夾", # 到哪個文件夾
is_=False) # True復制,False剪切
5. 用python將幾個mysql資料庫的數據同步到一個mysql裡面
這是我以前寫的一個簡單的查找xml值的一個方法,使用該方法可以比較方便的獲得xml的值,相比xml模塊來說比較輕巧defgetValue(xmlcontent,type):start=''end=''ifxmlcontent.find(start)==-1orxmlcontent.find(end)==-1:return""else:sid=xmlcontent.find(start)+len(type)+2eid=xmlcontent.find(end)returnxmlcontent[sid:eid]例如:a='''Jim12'''name=getValue(a,'name')age=getValue(a,'age')在這獲得了數據之後再寫到資料庫不過是一條簡單的INSERT語句罷了
6. 關於多個python文件共享數據
簡單。一個是通過線程同步。另一個就是全局變數global,加上這個修飾就可以了。python一個進程里的所有東西,都是在一個內存空間的。只要加了global就可以訪問。可以用這個全局變數通訊,效果也是一樣的。python一個進程只用一個CPU核。所以不存在樓下說的地址空間不一樣的問題。
進程間同步也有幾個方法。通常使用共享內存,管道,不過最常用的還是socket或者是資料庫。還有些分布式組件不是很好用。我通常用mutliprocessing,裡面有現成的進程通信辦法。
看到你的需求。我覺著可以用兩個變數,一個變數記錄修改狀態,另一個變數要求先鎖再進行修改。目前看來如果僅僅是python里實現。直接使用memcache這個工具就可以解決。一個程序讀寫,其它的程序只需要輪洵就可以了。從原理上講memcache是一個內存資料庫。